2014-01-10 1 views
1

내가 응용 프로그램을 시작하고 GCMGCM 안드로이드 오류가 의도 방송 수신 {= DISPLAY.MESSAGE FLG = 0x10을 (이 엑스트라를) 역할을

를 해결하는 방법에 어떤 생각에 장치를 등록 할 때이 문제가?

나머지는 정상적으로 작동하며 알림을 받고 올바르게 수신합니다.

private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 

      Log.v("MESSAGE", intent.getExtras().getString("message")); 
      String newMessage = intent.getExtras().getString("message"); 
      // Waking up mobile if it is sleeping 
      aController.acquireWakeLock(getApplicationContext());  
      Toast.makeText(getApplicationContext(), "Got Message: " + newMessage, Toast.LENGTH_LONG).show(); 
      // Releasing wake lock 
      aController.releaseWakeLock(); 
     } 
    }; 

추가에 대한 코드가 null 반환

01-10 20:11:09.945: W/dalvikvm(20161): threadid=1: thread exiting with uncaught exception (group=0x40c5a1f8) 
01-10 20:11:09.945: E/AndroidRuntime(20161): FATAL EXCEPTION: main 
01-10 20:11:09.945: E/AndroidRuntime(20161): java.lang.RuntimeException: Error receiving broadcast Intent { act=example.gcm.testing.DISPLAY_MESSAGE flg=0x10 (has extras) } in [email protected] 
01-10 20:11:09.945: E/AndroidRuntime(20161): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:737) 
01-10 20:11:09.945: E/AndroidRuntime(20161): at android.os.Handler.handleCallback(Handler.java:605) 
01-10 20:11:09.945: E/AndroidRuntime(20161): at android.os.Handler.dispatchMessage(Handler.java:92) 
01-10 20:11:09.945: E/AndroidRuntime(20161): at android.os.Looper.loop(Looper.java:137) 
01-10 20:11:09.945: E/AndroidRuntime(20161): at android.app.ActivityThread.main(ActivityThread.java:4517) 
01-10 20:11:09.945: E/AndroidRuntime(20161): at java.lang.reflect.Method.invokeNative(Native Method) 
01-10 20:11:09.945: E/AndroidRuntime(20161): at java.lang.reflect.Method.invoke(Method.java:511) 
01-10 20:11:09.945: E/AndroidRuntime(20161): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993) 
01-10 20:11:09.945: E/AndroidRuntime(20161): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760) 
01-10 20:11:09.945: E/AndroidRuntime(20161): at dalvik.system.NativeStart.main(Native Method) 
01-10 20:11:09.945: E/AndroidRuntime(20161): Caused by: java.lang.NullPointerException 
01-10 20:11:09.945: E/AndroidRuntime(20161): at example.gcm.testing.MainActivity$1.onReceive(MainActivity.java:146) 
01-10 20:11:09.945: E/AndroidRuntime(20161): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:728) 

답변

1

오류,

String newMessage = intent.getExtras().getString("message"); 

사용 시도 캐치, 당신은 거기에서 수신 할 추가되어 있는지 확인하십시오!

+0

시도 { \t \t \t \t //Log.v("MESSAGE 시도 ", intent.getExtras()에는 getString. ("메시지 ")); \t \t \t \t 문자열 newMessage = intent.getExtras(). getString ("message"); \t \t \t \t //이 \t \t \t \t aController.acquireWakeLock (컨텍스트)을 자고 경우 모바일 깨어; \t \t \t \t \t \t Toast.makeText (getApplicationContext(), "Got Message :"+ newMessage, Toast.LENGTH_LONG) .show(); \t \t \t \t // 웨이크 잠금을 \t \t \t \t aController.releaseWakeLock을 해제; \t \t // DB 작업 \t \t} 캐치 (예외 전자) { \t \t // 새로운 RuntimeException을 (e)를 던져; \t \t \t Log.v ("예", e.getMessage()); \t \t} – David

+0

하지만 로그에 아무런 메시지가 없습니다. – David

+1

은 잠자기에 모바일이되거나 메시지가 도착하지 않습니까? – Saqib

0

Log.v("MESSAGE", intent.getExtras().getString("price")); 
String newMessage = intent.getExtras().getString("price");