我正在尝试获取一个url来打开我编写的自定义应用程序,但是意图过滤器似乎不起作用。我已经看了十几个线程,似乎提供了“解决方案”,但对我来说,这是没有好处的。
我需要从二维码扫描打开我的应用程序。因此,我没有在任何浏览器内单击任何链接。我只是打开我的二维码扫描器,扫描二维码,希望它能启动我的应用程序,而不是打开默认的网络浏览器。qr扫描仪的默认操作是在web浏览器中打开uri。
manifest.xml是这样的:
<activity
android:name=".Main"
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>
<data android:scheme="http" android:host="tinysb.com" android:path="/ecard/" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
我的二维码指向http://tinysb.com/ecard/所以如果任何应用程序遇到链接,我会寻找一些东西来启动我的应用程序,而不是浏览器。现在,浏览器启动了,我甚至连扫描二维码后该怎么做的选项都没有。现在,我没有从web服务器传递任何信息,所以我只需要它启动我的应用程序,而不需要向它传递任何信息。
因为这都是从qr扫描器启动的,所以没有任何活动我可以编码来拦截uri。
很多帖子都说,设置android:scheme-per应该能做到这一点,但对我来说根本不管用。
任何帮助都将不胜感激。
最佳答案
问题可能是你使用的二维码扫描仪。应用程序可以指定一个应用程序来打开url,而不是让android intent选择器来处理它。您是否安装了多个浏览器,并提示您选择其中一个?
以下意图筛选器对我有效:
<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:host="getamen.com" android:scheme="http" android:pathPrefix="/topics"/>
</intent-filter>
您可以尝试使用android:pathprefix=“/ecard”或添加可浏览类别。
关于android - Intent 过滤器无法打开自定义应用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8967666/