2016-12-02 68 views
1

有人可以幫助我......EMDK Android Studio

我無法從Symbol TC75掃描儀收回意圖。我有設置配置文件發送意圖到我的應用程序我的應用程序recive null意圖。

我已經把mainfest文件的代碼....

<uses-permission android:name="com.symbol.emdk.permission.EMDK" /> 
     <uses-library android:name="com.symbol.emdk"/> 

<activity 
     android:name=".aufladen" 
     android:screenOrientation="portrait" 
     android:launchMode="singleTask"> 
     <intent-filter> 
      <action android:name="com.draganm.mpreiscontainertracking.BARCODE" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

中的onCreate我把這個

EMDKResults results = EMDKManager.getEMDKManager(this.getApplicationContext(), this); 


    if(results.statusCode == STATUS_CODE.FAILURE) 
    { 
     //Failed to create EMDKManager object 
    } 
    Intent i = getIntent(); 
    handleDecodeData(i); 


@Override 
public void onNewIntent(Intent i) { 
    handleDecodeData(i); 
} 

private void handleDecodeData(Intent i) { 
    if (i.getAction().contentEquals("com.draganm.mpreiscontainertracking.BARCODE")) { 
     String data = i.getStringExtra("com.motorolasolutions.emdk.datawedge.data_string"); 

     if (data != null && data.length() > 0) { 
     } 
     Toast.makeText(this, data, Toast.LENGTH_LONG).show(); 
    } 
} 

後我玩真正的設備這個程序,我得到的日誌

此錯誤
FATAL EXCEPTION: main 
                       Process: com.draganm.mpreiscontainertracking, PID: 5163 
                       java.lang.RuntimeException: Unable to start activity ComponentInfo{com.draganm.mpreiscontainertracking/com.draganm.mpreiscontainertracking.aufladen}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.contentEquals(java.lang.CharSequence)' on a null object reference 
                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
                        at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                        at android.os.Looper.loop(Looper.java:135) 
                        at android.app.ActivityThread.main(ActivityThread.java:5254) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at java.lang.reflect.Method.invoke(Method.java:372) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 
                       Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.contentEquals(java.lang.CharSequence)' on a null object reference 
                        at com.draganm.mpreiscontainertracking.aufladen.handleDecodeData(aufladen.java:610) 
                        at com.draganm.mpreiscontainertracking.aufladen.onCreate(aufladen.java:101) 
                        at android.app.Activity.performCreate(Activity.java:6012) 
                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)  
                        at android.app.ActivityThread.access$800(ActivityThread.java:151)  
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)  
                        at android.os.Handler.dispatchMessage(Handler.java:102)  
                        at android.os.Looper.loop(Looper.java:135)  
                        at android.app.ActivityThread.main(ActivityThread.java:5254)  
                        at java.lang.reflect.Method.invoke(Native Method)  
                        at java.lang.reflect.Method.invoke(Method.java:372)  
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)  
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)  
+0

'我.getAction()'是空 –

回答

2

我認爲你混淆不同的方式來檢索掃描的數據。意圖僅從DataWedge服務(http://techdocs.zebra.com/datawedge/6-0/guide/about/)發送,但您也在初始化EMDK庫(http://techdocs.zebra.com/emdk-for-android/6-0/guide/gettingstarted/)。 EMDK通過回調返回其數據。

如果選擇DataWedge路線,我有一個偵聽DataWedge意圖,這可能有助於應用程序:https://github.com/darryncampbell/DataWedge-API-Exerciser

如果選擇EMDK路線,也有對斑馬自己的網站樣本:http://techdocs.zebra.com/emdk-for-android/6-0/samples/barcode/

+0

搜索後,我發現解決方案的天.....我必須onNewIntent梅索德 @覆蓋 公共無效onNewIntent(意向I){ super.onNewIntent(i)插入super.onNewIntent; handleDecodeData(i); handleDecodeData(i); } 但你的回答幫助我更多地理解這個謝謝:) – Pecurka