嗨我刚开始在android中使用深层链接。当我在设备中运行应用程序时,应用程序已安装在设备中,但未出现在应用程序列表中。这是我的代码
deeplinkig.manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.deeplinking"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!-- <category android:name="android.intent.category.LAUNCHER" /> -->
<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” -->
</intent-filter>
<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="www.example.com"
android:pathPrefix="gizmos"
android:scheme="example" />
</intent-filter>
</activity>
</application>
</manifest>
deeplinking.java
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();
}
}
当我从adb运行时,应用程序正在打开,adb显示以下结果,并且在设备中打开应用程序,显示“hello world”
Starting: Intent { act=android.intent.action.VIEW dat=example://gizmos pkg=com.d
eeplinking }
Status: ok
Activity: com.deeplinking/.MainActivity
ThisTime: 327
TotalTime: 327
Complete
这是期望的结果。我认为运行此应用程序www.example.com的人会打开.. 先谢谢
答案 0 :(得分:1)
此应用程序未出现在应用程序列表中,因为它不会处理android.intent.category.LAUNCHER
的意图,因为它已在您的代码中注释掉。这是故意的吗?