0

「 com.google.zxing.client.android 」という意図を処理できるアクティビティがあるかどうかを確認しようとしています。これを処理できる主なアプリケーションは、ZXing 社のBarCode Scannerですが、 QR Droidも同様です。

私はこれを使用しています:

List<ResolveInfo> list =  packageManager.queryIntentActivities(intent, 
     PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() == 0) //no activity can handle that

この:

Intent test = new Intent(Intent.ACTION_VIEW, 
    Uri.parse("com.google.zxing.client.android"));
if (context.getPackageManager().resolveActivity(test, 0) == null) 
    //no activity can handy that

主な問題は、QR Droidのみがインストールされていて、BarCode Scannerがインストールされていない場合です。この 2 つの条件の結果は true です (それを処理できるアプリケーションはありません)。しかし、そのインテントを実行すると:

Intent intentScan = new Intent("com.google.zxing.client.android.SCAN");
fragment.startActivityForResult(intentScan, RequestCodes.REQUEST_CODE_SCAN);

QR Droidアプリが起動します。これは良いことですが、それを予測することはできません:(回答ありがとうございます:)

4

1 に答える 1