我正在使用QR扫描仪扫描QR码(特定数据的编码)。如果我的应用程序已安装在设备上,则会启动该应用程序。如果没有安装应用程序,那么用户就可以在市场上下载应用程序。我在互联网上搜索了很多,但只发现了this个问题。
这是扫描QR码时调用的清单文件中的活动
<activity android:name=".map.TestQrOpenActivity">
<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="uniqueapp"/>
</intent-filter>
</activity>
这是在我的二维码中编码的字符串
uniqueapp://myData
如果应用程序安装在设备中,那将非常有效,但如果没有安装,我需要去谷歌播放并基本下载它
如果应用程序存在,则打开uniqueapp://myData
,否则打开market://details?id=com.my.package.name
这可能吗? (我不想写自己的扫描仪)
答案 0 :(得分:1)
试试这个
public static boolean intentIsAvailable(Context ctx, Intent intent) {
final PackageManager mgr = ctx.getPackageManager();
List<ResolveInfo> list =
mgr.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
答案 1 :(得分:1)
重新构思问题:
从我正在阅读的内容来看,我认为你想要完成以下任务:
我认为您解决了我用app链接描述的所有四个用例。
Android应用链接:
http://developer.android.com/training/app-links/index.html
使用应用程序链接,您可以将您的URL放在前面,如果安装了应用程序,让您的应用程序拦截它,如果没有安装,android会简单地将人们发送到您的网站。一旦他们进入您的网站,您就可以告诉他们需要安装您的应用。
答案 2 :(得分:0)
也许这是你的解决方案:
注意:该应用将始终尝试第一个网址,然后回退到第二个网址。例如,在“iOS - iPhone”下,如果你想打开tweetbot应用程序,你可以将tweetbot://添加到第一个文本字段,然后将iTunes商店网址添加到第二个文本字段。当用户点击链接时,如果他们在iPhone上,它将检查用户是否安装了tweetbot,如果没有,则会将他们带到iTunes商店。
它生成网址和 QR码 希望这是你需要的。
答案 3 :(得分:0)
我建议使用ZXing Android Embedded。
这样您就不必编写自己的扫描仪,用户也无需安装任何其他扫描仪。