我在 Android 模拟器上安装了一个应用程序代码如下当我启动模拟器时,我在浏览器中输入“market.android.com”,我希望启动我的应用程序,但它没有启动
请回答,应用程序的正确工作可以由模拟器提供还是必须使用真实设备?(正是从 android 网络浏览器启动应用程序)
<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="http" android:host="market.android.com"
android:path="/search" />
</intent-filter>
或者,有“意图:”方案。这允许您将几乎任何 Intent 描述为 URI,浏览器将在单击时尝试启动该 URI。要构建这样的方案,最好的方法是编写代码来构建您要启动的 Intent,然后打印 intent.toUri(Intent.URI_INTENT_SCHEME) 的结果。
您可以使用具有此意图的操作来查找支持该操作的任何活动。出于安全原因,浏览器会在启动前自动将 BROWSABLE 类别添加到意图中;出于同样的原因,它还将剥离您提供的任何显式组件。
如果您想确保它只启动您的应用程序,使用它的最佳方法是使用您自己的作用域操作并使用 Intent.setPackage() 表示 Intent 将仅匹配您的应用程序包。
两者之间的取舍:
http URI 要求您拥有自己的域。用户将始终可以选择在浏览器中显示 URI。它有非常好的后备属性,如果你的应用没有安装,它们只会登陆你的网站。
意图 URI 要求您的应用程序已经安装并且仅在 Android 手机上。几乎允许任何意图(但始终包含 BROWSABLE 类别并且不支持显式组件)。它们允许您仅将启动定向到您的应用程序,而用户无需选择转到浏览器或任何其他应用程序。
感谢您的帮助(和代码片段)