我尝试启用深层链接,以便某些链接启动我的应用。
我读了这个turotial https://developer.android.com/training/app-indexing/deep-linking.html并且非常接近但是当我尝试使用adb将VIEW意图发送到应用程序时测试它我只是得到了错误
Error: Activity not started, unable to resolve Intent { act=android.intent.actio
n.VIEW dat=example://gizmos flg=0x10000000 pkg=com.myapp.DeepLinkActivity }
DeepLinkActivity.java
public class DeepLinkActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getAction() == Intent.ACTION_VIEW) {
Uri uri = getIntent().getData();
}
}
}
Android Manifest宣布深层链接活动
<activity android:name="com.myapp.DeepLinkActivity" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="gizmos"
android:scheme="example" />
<!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
<data
android:host="www.example.com"
android:pathPrefix="gizmos"
android:scheme="http" />
</intent-filter>
</activity>
发送视图意图的ADB命令
adb shell am start -W -a android.intent.action.VIEW -d "example://gizmos" com.myapp.DeepLinkActivity
但我认为我甚至不需要完整的活动路径
adb shell am start -W -a android.intent.action.VIEW -d "example://gizmos" com.myapp
答案 0 :(得分:6)
尝试完全跳过包参数。我有完全相同的问题而且有效。
adb shell am start -W -a android.intent.action.VIEW -d "example://gizmos"
答案 1 :(得分:2)
在你的清单中,你将你的计划定义为&#34; http&#34;但是在你的意图构造函数中,你正在使用&#34;示例。&#34;
答案 2 :(得分:1)
问题是您有两种深度链接的意图过滤器:
<activity
android:name="app.myActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "example://gizmos”-->
<data
android:host="gizmos"
android:scheme="example" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="www.example.com"
android:pathPrefix="/gizmos"
android:scheme="http" />
<!-- note that the leading "/" is required for pathPrefix-->
</intent-filter>
</activity>
您将能够在ADB shell上使用它们。请参阅我的完整答案here
答案 3 :(得分:0)
只需尝试以下操作
Command:
adb shell am start -d your-deep-link
Example:
adb shell am start -d rmagazine://opensetting/v1