gpt4 book ai didi

适用于多屏幕的 Android Intent-Filter

转载 作者:行者123 更新时间:2023-11-30 04:34:06 26 4
gpt4 key购买 nike

我想在 Android 中使用基于方案的 Intent-Filter 从 Web 浏览器启动我的应用程序,像这样在 DATA 标记中托管。

    <activity android:name=".activity.LogoActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".activity.phone.MainActivityPhone" android:configChanges="orientation|keyboard"
android:launchMode="singleTask">
<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="my" android:host="mystore" />
</intent-filter>
</activity>

<activity android:name=".activity.tablet.MainActivityTablet" android:configChanges="orientation|keyboard"
android:launchMode="singleTask">
<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="my" android:host="mystore" />
</intent-filter>
</activity>

如您所见,手机和平板电脑有两个 Main Activity,在 LogoActivity 中根据屏幕尺寸确定将打开哪个 Main Activity。但问题是当用户在 Web 浏览器中单击 my://mystore 链接时,有两种启动 MainActivtyPhone 和 MainActivityTablet 的选择。

我想要的是只有一个适用于 uri my://mystore 的 intent-filter。有什么帮助吗?谢谢。

最佳答案

在您的应用程序首次运行时,使用 PackageManager 禁用您不想使用的 Activity 。

请不要发明自定义方案。请改用 HTTP 网址:

<data android:scheme="http" android:host="yourdomain.com" android:path="/something/or/another" />

这样,您实际上可以在 http://yourdomain.com/something/or/another 放置一个真实的网页,因此如果有人获得了您的链接但没有安装您的应用程序,他们将看到您的网页,而不是收到错误消息。

此外,请删除 android:configChanges,或处理所有 配置更改。

关于适用于多屏幕的 Android Intent-Filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7184894/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com