0

我在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:”方案。这使您可以将几乎所有的Intent描述为URI,浏览器在单击时将尝试启动。要构建这样的方案,最好的方法是只编写代码来构建要启动的Intent,然后打印intent.toUri(Intent.URI_INTENT_SCHEME)的结果。

您可以使用具有此意图的操作来查找支持该操作的任何活动。出于安全原因,浏览器会在启动之前自动将BROWSABLE类别添加到意图中;它也将剥离您为相同原因提供的任何显式组件。

如果您想确保它只启动您的应用程序,最好的方法是使用您自己的作用域操作并使用Intent.setPackage()来表示Intent只会匹配您的应用程序包。两者之间

权衡:

HTTP的URI需要你有你自己的域名。用户将始终可以选择在浏览器中显示URI。它有非常好的回退属性,如果你的应用程序没有安装,它们会简单地登陆你的网站。

意图URI要求您的应用程序已经安装,并且只能在Android手机上安装。几乎允许任何意图(但总是包含BROWSABLE类别并且不支持显式组件)。它们允许您直接启动到您的应用程序,而无需用户选择转到浏览器或任何其他应用程序。

感谢所有帮助(和代码段)

回答

0

当我启动仿真器,我打字“market.android.com”,我想启动我的应用程序,但它不't start

它不应该在这种情况下开始,假设通过“输入”你的意思是“输入地址栏”。浏览器通常只对超链接使用这些<intent-filter>结构。

请问,正确的应用程序工作可能由仿真器提供,或者需要使用真实设备?

如果您使用超链接,它应该在模拟器上工作。

+0

@ user2331971:拥有一个包含超链接的网页。 – CommonsWare 2013-05-08 12:20:19

0

我的猜测是,你离打开你的应用程序只有一步之遥。不要在浏览器中输入URL,你需要在其他地方有一个URL。说,在SMS中。您将在那里获得某种文本以及链接“http://market.android.com”。点击此链接时,您应该看到一个对话框,其中包含一个选项,用于通过浏览器或应用程序打开它。

对不起,如果我错误地理解了这个问题。

+0

...你是对的,但如果我有一个链接(即使在短信),我想从那里开始我的应用程序 – Roman 2013-05-08 13:07:11

+0

我没有在这里看到一个问题。您必须在对话框中看到您的应用选项。只需点击它,你的应用程序就会开始。 – lomza 2013-05-08 13:11:14