通过Android中的深层链接向意图传递额外的值

San*_*gya 2 android deep-linking android-intent

为了myapp://wallet指向WalletActivity我写了下面的代码,它起作用了:

    <activity
        android:name=".ui.WalletActivity"
        android:label="@string/title_activity_wallet"
        android:screenOrientation="portrait"
        android:theme="@style/MaterialThemeNoActionBar"
        android:launchMode="singleTop"
        android:exported="true">
        <intent-filter android:label="@string/title_activity_link_wallet" >
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data
                android:scheme="myapp"
                android:host="wallet" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

我为此做了类似的事情,UserProfileActivity但是(显然)onCreate该行中的函数崩溃了:String id = intent.getExtras().getString("id");因为我没有id为该活动的意图发送任何值。

因此,在这种情况下,有没有办法让我将ID传递给被调用活动的意图,在正常情况下,我会intent.putExtra("id", id);在调用活动中使用该方法(intent被调用活动在哪里)

Bla*_*elt 5

String id = intent.getExtras().getString("id") 因为Deeplink是错误的。

您可以检索与使用相关联的UriIntent

Uri uri = getIntent().getData();
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用可用的一种吸气剂来检索您的id,如果提供的话。例如myapp://wallet/test?id=100

String id = data.getQueryParameter("id");
Run Code Online (Sandbox Code Playgroud)

应该给你 100