无法使用模拟器浏览器中的Intent-Filter启动Activity

时间:2012-07-30 18:36:01

标签: android intentfilter

我是Android新手,正在尝试使用Android的一些功能来准备项目工作。在我提出问题之前,我会说我已经花了几个小时来搜索这个问题,只能找到相同的答案,即使在Stack Overflow上也是如此。我相信我已经遵循Stack Overflow和其他网站上给出的建议(大多数是相同的答案),但却无法解决我的问题。

我的问题是,当用户点击链接时,我希望能够从模拟器的浏览器启动我的活动。这仅用于测试目的;下一步是对intent-filter数据进行额外的过滤。

我能够从我自己的WebView和Messages中将活动显示在活动选择器对话框中。但是,它从未在浏览器中显示。为了确保它不是我的代码中的任何其他东西,我创建了一个非常简单的应用程序来演示问题。

我的活动只是使用TextView加载一个简单的布局。下面是我的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mycompany"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-sdk 
        android:minSdkVersion="14"/>

    <uses-permission 
        android:name="android.permission.INTERNET"/>

    <application 
        android:label="@string/app_name" 
        android:icon="@drawable/ic_launcher">

        <activity 
            android:name="MyActivity"
            android:label="@string/app_name">

            <intent-filter>
                <action 
                    android:name="android.intent.action.MAIN"/>
                <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="http"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

我还检查了浏览器的默认操作,它们都是空的。有没有人知道为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

如果您希望能够在浏览器中使用intent过滤器,则必须导航到某个页面,然后单击包含您要过滤的URL的链接。将其键入地址栏将始终转到URL,并且永远不会提示运行该应用程序。