3

スキャナーExceptionで作業しているときに時間がかかります。zxing私のアプリケーションでは、(zxingの)シングルカメラでスキャンBarしてコーディングしたいと思います。そのために、私は自分のアプリで次のコードを使用しましたQRActivityCaptureActivity

   Intent intent = new Intent("com.google.zxing.client.android.SCAN");
              intent.setPackage("com.google.zxing.client.android"); 
              intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
              intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A,QR_CODE");
              startActivityForResult(intent, 0);  

しかし、私は例外を得ています:-

01-03 10:28:15.445: E/AndroidRuntime(3405): android.content.ActivityNotFoundException: No Activity found to handle Intent 
{ act=com.google.zxing.client.android.SCAN pkg=com.google.zxing.client.android (has extras) }

使えない

  IntentIntegrator

私のアプリで。ですから、この問題を解決するために、誰かが私を助けてください。これは私の完全なログ猫の出力です

             01-04 04:58:39.551: D/AndroidRuntime(905): Shutting down VM
                     01-04 04:58:39.551: W/dalvikvm(905): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
                      01-04 04:58:39.581: E/AndroidRuntime(905): FATAL EXCEPTION: main
                      01-04 04:58:39.581: E/AndroidRuntime(905): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.google.zxing.client.android.SCAN pkg=com.google.zxing.client.android (has extras) }
                       01-04 04:58:39.581: E/AndroidRuntime(905):   at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545)
                       01-04 04:58:39.581: E/AndroidRuntime(905):   at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416)
                     01-04 04:58:39.581: E/AndroidRuntime(905):     at android.app.Activity.startActivityForResult(Activity.java:3351)
                     01-04 04:58:39.581: E/AndroidRuntime(905):     at android.app.Activity.startActivityForResult(Activity.java:3312)
                      01-04 04:58:39.581: E/AndroidRuntime(905):    at com.google.zxing.shopping.shopping$1.onClick(shopping.java:98)
                          01-04 04:58:39.581: E/AndroidRuntime(905):    at android.view.View.performClick(View.java:4084)
                      01-04 04:58:39.581: E/AndroidRuntime(905):    at android.view.View$PerformClick.run(View.java:16966)
                         01-04 04:58:39.581: E/AndroidRuntime(905):     at android.os.Handler.handleCallback(Handler.java:615)
                         01-04 04:58:39.581: E/AndroidRuntime(905):     at android.os.Handler.dispatchMessage(Handler.java:92)
                              01-04 04:58:39.581: E/AndroidRuntime(905):    at android.os.Looper.loop(Looper.java:137)
                           01-04 04:58:39.581: E/AndroidRuntime(905):   at android.app.ActivityThread.main(ActivityThread.java:4745)
                          01-04 04:58:39.581: E/AndroidRuntime(905):    at java.lang.reflect.Method.invokeNative(Native Method)
                          01-04 04:58:39.581: E/AndroidRuntime(905):    at java.lang.reflect.Method.invoke(Method.java:511)
                        01-04 04:58:39.581: E/AndroidRuntime(905):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
                       01-04 04:58:39.581: E/AndroidRuntime(905):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                              01-04 04:58:39.581: E/AndroidRuntime(905):    at dalvik.system.NativeStart.main(Native Method)

よろしくお願いします

4

1 に答える 1

1

Zxingアプリケーションがデバイスにインストールされていないため、ActivityNotFoundExceptionが発生します。ですので、取り付けられているか確認してください。そうでない場合は、ユーザーをZxingのplaystore-pageにリダイレクトします。

これらのコードをいくつか実装しました。必要に応じて変更します。

boolean isZxingInstalled;
/*
 *Checking whether Zxing is installed or not
 */ 
try
{
ApplicationInfo info = getPackageManager().getApplicationInfo("com.google.zxing.client.android", 0 );
boolean isZxingInstalled = true;
    }
catch(PackageManager.NameNotFoundException e){
                isZxingInstalled=false;
          }

/*
 * Store the boolean value on the basis of Zxing is installed or not
 */

if(isZxingInstalled) //If it is then intent Zxing application
 {
         //start the facebook app
         Intent intent = new Intent("com.google.zxing.client.android.SCAN");
          intent.setPackage("com.google.zxing.client.android"); 
          intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
          intent.putExtra("SCAN_FORMATS",    "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A,QR_CODE");
          startActivityForResult(intent, 0); 
  }
 else //It's not then redirect user to PlayStore-ZxingPlage
  {
    /*
     *Checking whether PlayStore is installed in device or not?
     */
     boolean isPlayStoreInstalled
     try
     {
      ApplicationInfo i=getPackageManager().getApplicationInfo("com.google.vending", 0 );
      boolean isPlayStoreInstalled = true;
      }
     catch(PackageManager.NameNotFoundException e){
                isPlayStoreInstalled=false;
          }

      /*
       * If it is the download Zxing
       */ 
      if(isPlayStoreInstalled)
       {
        Intent DownloadZxing = new Intent(Intent.ACTION_VIEW,Uri.parse("market://detailsid=com.google.zxing.client.android"));
        startActivity(DownloadZxing);
        }
      else //Toast message indicating No PlayStore Found
       {
         Toast.makeText(this,"Install PlayStore First",Toast.LENGHT_SHORT).show();
        }
  }

これらがお役に立てば幸いです!! :)

于 2013-01-03T11:54:47.027 に答える