我试过搜索类似的问题,但没有一个关于这个话题很清楚。
所以,我有一个应用程序,我想使用二维码阅读器来启动它。例如,如果我拍摄 QR 码的照片,QR 阅读器会将其翻译成网址并以该地址作为参数启动我的应用程序。我该怎么做呢?我无法访问 QR 阅读器,因为它可以是商店中的任何应用程序。如何让我的应用程序出现在可用程序列表中以处理参数?
我试过搜索类似的问题,但没有一个关于这个话题很清楚。
所以,我有一个应用程序,我想使用二维码阅读器来启动它。例如,如果我拍摄 QR 码的照片,QR 阅读器会将其翻译成网址并以该地址作为参数启动我的应用程序。我该怎么做呢?我无法访问 QR 阅读器,因为它可以是商店中的任何应用程序。如何让我的应用程序出现在可用程序列表中以处理参数?
如何从 QR 阅读器启动我的 Android 应用程序?
你没有,确切地说。您允许基于特定Intent
结构启动您的 Android 应用程序,其中一个或多个可能由 QR 码阅读器使用。
例如,如果我拍摄 QR 码的照片,QR 阅读器会将其翻译成网址并以该地址作为参数启动我的应用程序。我该怎么做呢?
有一个<intent-filter>
说明<activity>
它处理该 URL,例如:
<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="www.this-so-does-not-exist.com"
android:path="/something"
android:scheme="http"/>
</intent-filter>
这<intent-filter>
将匹配 URL http://www.this-so-does-not-exist.com/something
。更改<data>
元素将更改您匹配的 URL。
或者您可以像这样设置自己的方案。
<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="something"
android:scheme="myapp"/>
</intent-filter>
如果您输入“ myapp://someting/string to send to app
”,您的应用程序将启动,您将使用以下代码获得最后一部分
getIntent().getData().getLastPathSegment()