2014-02-24 47 views
0

我使用以下代码在通知状态中显示图标,它在Android 4.2.2中运行良好。NotificationCompat在Android 2.3.3中破解,但在Android 4.2.2中运行良好

但它在Android 2.3.3破解,为什么?谢谢!

findViewById(R.id.btnLog).setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //------------------------------------ 
       NotificationCompat.Builder mBuilder = 
         new NotificationCompat.Builder(getApplicationContext()) 
         .setSmallIcon(R.drawable.smsforward) 
         .setContentTitle("My notification") 
         .setContentText("Hello World!"); 

       NotificationManager mNotificationManager = 
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);    
       mNotificationManager.notify(12356, mBuilder.build());    

       //------------------------------------ 

      } 
     }); 

这里是堆栈跟踪:

02-24 05:55:22.925: E/AndroidRuntime(543): FATAL EXCEPTION: main 
02-24 05:55:22.925: E/AndroidRuntime(543): java.lang.IllegalArgumentException: contentIntent required: pkg=info.dodata.smsforward id=12356      

         notification=Notification(vibrate=null,sound=null,defaults=0x0,flags=0x0) 
02-24 05:55:22.925: E/AndroidRuntime(543): at android.os.Parcel.readException(Parcel.java:1326) 
02-24 05:55:22.925: E/AndroidRuntime(543): at android.os.Parcel.readException(Parcel.java:1276) 
02-24 05:55:22.925: E/AndroidRuntime(543): at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:274) 
02-24 05:55:22.925: E/AndroidRuntime(543): at android.app.NotificationManager.notify(NotificationManager.java:111) 
02-24 05:55:22.925: E/AndroidRuntime(543): at android.app.NotificationManager.notify(NotificationManager.java:91) 
02-24 05:55:22.925: E/AndroidRuntime(543): at ui.SMSMain$5.onClick(SMSMain.java:130) 
02-24 05:55:22.925: E/AndroidRuntime(543): at android.view.View.performClick(View.java:2485) 
02-24 05:55:22.925: E/AndroidRuntime(543): at android.view.View$PerformClick.run(View.java:9080) 
02-24 05:55:22.925: E/AndroidRuntime(543): at android.os.Handler.handleCallback(Handler.java:587) 
02-24 05:55:22.925: E/AndroidRuntime(543): at android.os.Handler.dispatchMessage(Handler.java:92) 
02-24 05:55:22.925: E/AndroidRuntime(543): at android.os.Looper.loop(Looper.java:123) 
02-24 05:55:22.925: E/AndroidRuntime(543): at android.app.ActivityThread.main(ActivityThread.java:3683) 
02-24 05:55:22.925: E/AndroidRuntime(543): at java.lang.reflect.Method.invokeNative(Native Method) 
02-24 05:55:22.925: E/AndroidRuntime(543): at java.lang.reflect.Method.invoke(Method.java:507) 
02-24 05:55:22.925: E/AndroidRuntime(543): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-24 05:55:22.925: E/AndroidRuntime(543): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-24 05:55:22.925: E/AndroidRuntime(543): at dalvik.system.NativeStart.main(Native Method) 

回答

2

是的,我有一些设备上同样的事情。我有两个2.2手机LG和HTC。 LG工作得很好,但HTC抛出IllegalArgumentException异常。只需将contentIntent添加到您的通知中即可。某些设备存在parcelling通知问题,如果没有设置contentIntent,则不会显示它。

+0

谢谢!如何将contentIntent添加到我的通知中?你能给我一些示例代码吗? – HelloCW

+0

使用Builder的setContentIntent方法 – Leonidos

相关问题