2016-05-14 13 views
3

Wenn ich die App in Asus_Z00AD (Ver-5.0) ausführen, ist der QR-Code Scanning perfekt, aber wenn ich es auf einem anderen Handy wie Moto-g (Ver-6.0) ausführen es zeigt einen leeren Bildschirm und sonst nichts .. , was zu tun .. plz mir vorschlagen ..Zxing Qr Code-Scanner funktioniert nicht auf allen Geräten

mein Scanner Aktivität

  package hashrail.com.aggregate.activity; 

      import android.app.Activity; 
      import android.content.Intent; 
      import android.graphics.PointF; 
      import android.os.Bundle; 
      import android.support.design.widget.Snackbar; 
      import android.support.v7.app.AlertDialog; 
      import android.support.v7.app.AppCompatActivity; 
      import android.support.v7.widget.Toolbar; 
      import android.util.Log; 
      import android.util.SparseArray; 
      import android.view.KeyEvent; 
      import android.view.MenuItem; 
      import android.view.SurfaceHolder; 
      import android.view.SurfaceView; 
      import android.view.View; 
      import android.widget.ImageView; 
      import android.widget.LinearLayout; 
      import android.widget.TextView; 
      import android.widget.Toast; 

      import com.google.zxing.Result; 

      import java.io.IOException; 

      import hashrail.com.aggregate.R; 
      import me.dm7.barcodescanner.zxing.ZXingScannerView; 


      public class BarcodeScanFragment extends AppCompatActivity implements ZXingScannerView.ResultHandler { 
       Toolbar toolbar; 
       LinearLayout rlpditem; 
       private String codeFormat, codeContent; 
       private TextView formatTxt, contentTxt; 
       ImageView imgBarcode; 
       LinearLayout llQRrcode; 
       private ZXingScannerView mScannerView; 


       public BarcodeScanFragment() { 
        // Required empty public constructor 
       } 

       @Override 
       public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.fragment_barcode_scan); 
        toolbar = (Toolbar) findViewById(R.id.toolbar1); 
        llQRrcode = (LinearLayout) findViewById(R.id.llQRrcode); 
        formatTxt = (TextView) findViewById(R.id.scan_format); 
        contentTxt = (TextView) findViewById(R.id.scan_content); 
        imgBarcode = (ImageView) findViewById(R.id.scssan_button); 

        setSupportActionBar(toolbar); 
        getSupportActionBar().setDisplayShowHomeEnabled(true); 
        getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
        setTitle("Barcode Scanner"); 

        /* imgBarcode.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 

          setContentView(mScannerView); 

          mScannerView.startCamera(); 
         } 
        });*/ 
       } 

       @Override 
       public boolean onOptionsItemSelected(MenuItem item) { 

        switch (item.getItemId()) { 
         case android.R.id.home: 
          onBackPressed(); 
          return true; 
         default: 
          return super.onOptionsItemSelected(item); 
        } 
       } 
       public void QrScanner(View view) { 
         // Start camera 
        mScannerView = new ZXingScannerView(BarcodeScanFragment.this); // Programmatically initialize the scanner view 
        mScannerView.setResultHandler(BarcodeScanFragment.this); // Register ourselves as a handler for scan results. 
        setContentView(mScannerView); 
        mScannerView.startCamera(); 
       } 

       /* @Override 
       public void onPause() { 
        super.onPause(); 
        mScannerView.stopCamera(); // Stop camera on pause 
       } 
      */ 
       @Override 
       public void handleResult(Result rawResult) { 
      // Do something with the result here 

        Log.e("handler", rawResult.getText()); // Prints scan results 
        Log.e("handler", rawResult.getBarcodeFormat().toString()); // Prints the scan format (qrcode) 

        // show the scanner result into dialog box. 
        AlertDialog.Builder builder = new AlertDialog.Builder(this); 
        builder.setTitle("Scan Result"); 
        builder.setMessage(rawResult.getText()); 
        AlertDialog alert1 = builder.create(); 
        alert1.show(); 

        // If you would like to resume scanning, call this method below: 
        mScannerView.resumeCameraPreview(this); 
       } 
      } 

Gradle Datei

   apply plugin: 'com.android.application' 

       android { 
        compileSdkVersion 23 
        buildToolsVersion "23.0.3" 

        defaultConfig { 
         applicationId "hashrail.com.aggregate" 
         minSdkVersion 11 
         targetSdkVersion 23 
         versionCode 1 
         versionName "1.0" 
         useLibrary 'org.apache.http.legacy' 
        } 
        buildTypes { 
         release { 
          minifyEnabled false 
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
         } 
        } 
       } 

       dependencies { 
        compile fileTree(dir: 'libs', include: ['*.jar']) 
        testCompile 'junit:junit:4.12' 
        compile 'com.android.support:appcompat-v7:23.3.0' 
        compile 'com.android.support:design:23.0.1' 
        compile 'com.android.support:cardview-v7:23.0.1' 
        compile 'com.android.support:palette-v7:23.0.1' 
        compile 'com.android.support:recyclerview-v7:23.0.1' 
        compile 'com.github.lzyzsd:circleprogress:[email protected]' 

        compile 'me.dm7.barcodescanner:zxing:1.8.4' 


        //compile 'com.dlazaro66.qrcodereaderview:qrcodereaderview:1.0.0' 
        /*compile 'com.journeyapps:zxing-android-embedded:[email protected]' 
        compile 'com.journeyapps:zxing-android-legacy:[email protected]' 
        compile 'com.journeyapps:zxing-android-integration:[email protected]' 
        compile 'com.google.zxing:core:3.0.1'*/ 

       } 

Antwort

0

Ich benutze die gleiche Bibliothek funktioniert gut auf Version 6.0 und 7.0 Geräte, aber einige Probleme mit niedrigeren Version Geräte.Ich habe es auch auf Moto G4 Test funktioniert gut auf G4 und G5.

Ihr Code ist völlig korrekt ich mache den gleichen Weg, eine Sache zu tun, um es für das Scannen zu tun machen separate Aktivität für Scanner-Ansicht und erhalten Daten zurück, wo Sie wollen von HandleResult() -Methode, weil leeren weißen Bildschirm verursacht werden kann wegen setcontentView überschreiben wieder für scanner view.try auf diese Weise, wenn Sie Code benötigen dann kann ich auch den Code teilen ...

+0

können Sie es mit mir teilen? Ich habe das Problem mit dem weißen Bildschirm, egal welches Gerät – Rekt

Verwandte Themen