2017-12-29 2 views
0

해야 할 일 : 통합 된 ZXING으로 바코드를 스캔하고 바코드를 앱의 SQLite database에 저장하십시오.오류 zxing으로 스캔 한 후 데이터베이스에 데이터 저장

처음에는 바코드를 스캔하고 화면에 Toast-Message으로 표시 했으므로 이제까지 정상적으로 작동했습니다.

이후에는 데이터베이스에 barcode을 삽입하는 기능을 추가했습니다.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); 
    if(result != null) { 
     if(result.getContents() == null) { 
      Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show(); 
     } else { 
      addAP(result.getContents()); 
     } 
    } else { 
     super.onActivityResult(requestCode, resultCode, data); 
    } 
} 

private void addAP(String barcodeNumber) { 

    int codeLength = barcodeNumber.length(); 
    barcodeNumber = barcodeNumber.substring(4,codeLength - 1); 
    int APID = Integer.parseInt(barcodeNumber); 
    //Toast.makeText(this, "Scanned: " + APID, Toast.LENGTH_LONG).show(); 

    String title = "TestAP-" + barcodeNumber; 

    ContentValues values = new ContentValues(); 
    values.put(APEntry.AP_ID, 13222); 
    values.put(APEntry.AP_TITLE, title); 

    Toast.makeText(this, APEntry.CONTENT_URI.toString(), Toast.LENGTH_LONG).show(); 
    getContentResolver().insert(APEntry.CONTENT_URI, values); 

} 

나는 또한 ZXING에 텐트를 생략하고 직접 onClick 방법에 addAP 함수를 호출 시도 : 여기

12-29 11:58:00.363 28012-28012/com.factory.future.ap_manager E/AndroidRuntime: FATAL EXCEPTION: main 
                      Process: com.factory.future.ap_manager, PID: 28012 
                      java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=49374, result=-1, data=Intent { act=com.google.zxing.client.android.SCAN flg=0x80000 launchParam=MultiScreenLaunchParams { mDisplayId=0 mBaseDisplayId=0 mFlags=0 } (has extras) }} to activity {com.factory.future.ap_manager/com.factory.future.ap_manager.MainActivity}: java.lang.IllegalArgumentException: Unknown URL content://com.factory.future.ap_manager/aps 
                       at android.app.ActivityThread.deliverResults(ActivityThread.java:4520) 
                       at android.app.ActivityThread.handleSendResult(ActivityThread.java:4563) 
                       at android.app.ActivityThread.-wrap22(ActivityThread.java) 
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1698) 
                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                       at android.os.Looper.loop(Looper.java:154) 
                       at android.app.ActivityThread.main(ActivityThread.java:6776) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 
                      Caused by: java.lang.IllegalArgumentException: Unknown URL content://com.factory.future.ap_manager/aps 
                       at android.content.ContentResolver.insert(ContentResolver.java:1276) 
                       at com.factory.future.ap_manager.MainActivity.addAP(MainActivity.java:116) 
                       at com.factory.future.ap_manager.MainActivity.onActivityResult(MainActivity.java:95) 
                       at android.app.Activity.dispatchActivityResult(Activity.java:7282) 
                       at android.app.ActivityThread.deliverResults(ActivityThread.java:4516) 
                       at android.app.ActivityThread.handleSendResult(ActivityThread.java:4563)  
                       at android.app.ActivityThread.-wrap22(ActivityThread.java)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1698)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:154)  
                       at android.app.ActivityThread.main(ActivityThread.java:6776)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)  

스캔 결과를 처리하기위한 코드이다 : 그 이후로 나는 다음과 같은 오류를 받고 있어요 . 거기에 다음과 같은 오류가 :

java.lang.IllegalArgumentException: Unknown URL content://com.factory.future.ap_manager/aps 

가 여기에있는 모든 파일에 대한 링크입니다 : Link

+0

APEntry.CONTENT_URI가 이상하게 보입니다. – Kushan

+0

이미 확인되었습니다. "애완 동물"과 교차 검사를 한 경우에도 - 우드 시티에서 Google android 과정을하고있는 동안 한 적이 있습니다. CONTENT_URI에 잘못된 것이 없습니다. – 3dwa21

답변

0

문제 해결! CONTENT_URI 자체가 올바르게 처리되지만 AndroidManifest.xml에서 android:authorities="com.future.factory.ap_manager" 대신 android:authorities="com.factory.future.ap_manager"을 썼습니다. (코드를 보면서 몇 백 번 놓친 경우)

관련 문제