在Android中深层链接

时间:2014-10-01 12:25:30

标签: android deep-linking

嗨我刚开始在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的人会打开.. 先谢谢

1 个答案:

答案 0 :(得分:1)

此应用程序未出现在应用程序列表中,因为它不会处理android.intent.category.LAUNCHER的意图,因为它已在您的代码中注释掉。这是故意的吗?