Android应用链接仅适用于adb

时间:2017-02-09 21:58:07

标签: android android-intent

我希望在点击具有特定自定义方案的链接时启动我的应用。 但它只适用于adb:

./adb shell a start -a Android.Intent.Action.VIEW -d "ghd://whateversite.com"

单击链接时,或者直接在浏览器中写入URL时,它不起作用。

我正在使用:

    <activity
        android:name=".link.LaunchActivity"
        android:theme="@android:style/Theme.NoDisplay">
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
        </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:scheme="ghd" />
        </intent-filter>
    </activity>

2 个答案:

答案 0 :(得分:0)

在Intent过滤器中设置android:host

<activity
    android:name=".link.LaunchActivity"
    android:noHistory="true"
    android:theme="@android:style/Theme.NoDisplay">
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data android:scheme="ghd" android:host="whateversite.com" />
    </intent-filter>
</activity>

答案 1 :(得分:0)

尝试从autoVerify=true中移除<intent-filter/>。如documentation中所述:

  

当存在android:autoVerify属性时,安装您的应用程序会导致系统尝试验证与您的所有应用程序的意图过滤器中的Web URI关联的所有主机。只有在成功验证清单中声明的​​所有应用程序链接模式时,系统才会将您的应用视为指定URI模式的默认处理程序。

由于您没有添加任何主机,这可能就是它无法正常工作的原因。