Android QR检查是否已安装应用

时间:2016-02-22 13:53:47

标签: android if-statement qr-code

我正在使用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 这可能吗? (我不想写自己的扫描仪)

4 个答案:

答案 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)

重新构思问题:

从我正在阅读的内容来看,我认为你想要完成以下任务:

  1. 使用我的应用
  2. 阅读我的二维码
  3. 使用任何其他QR阅读器阅读我的二维码
  4. 始终将QR数据发送到我的应用或我的网站。
  5. 如果我的应用未安装,请帮助用户安装我的应用。
  6. 我认为您解决了我用app链接描述的所有四个用例。

    Android应用链接:

    http://developer.android.com/training/app-links/index.html

    使用应用程序链接,您可以将您的URL放在前面,如果安装了应用程序,让您的应用程序拦截它,如果没有安装,android会简单地将人们发送到您的网站。一旦他们进入您的网站,您就可以告诉他们需要安装您的应用。

答案 2 :(得分:0)

也许这是你的解决方案:

appurl

  

注意:该应用将始终尝试第一个网址,然后回退到第二个网址。例如,在“iOS - iPhone”下,如果你想打开tweetbot应用程序,你可以将tweetbot://添加到第一个文本字段,然后将iTunes商店网址添加到第二个文本字段。当用户点击链接时,如果他们在iPhone上,它将检查用户是否安装了tweetbot,如果没有,则会将他们带到iTunes商店。

它生成网址 QR码 希望这是你需要的。

答案 3 :(得分:0)

我建议使用ZXing Android Embedded

这样您就不必编写自己的扫描仪,用户也无需安装任何其他扫描仪。