Ste*_*Ste 32 notifications android push android-4.2-jelly-bean
从昨天起我在Android 4.2上遇到问题,当我收到推送通知时,即使我没有将其设置为振动,也需要获得许可
Notification notification = new Notification(icon, notificationItem.message, when);
notification.setLatestEventInfo(context, "App", notificationItem.message,
PendingIntent.getActivity(context, 0, intent, 0));
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.defaults |= Notification.DEFAULT_SOUND;
NotificationManager nm =
(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(notificationItem.notificationID, notification);
Run Code Online (Sandbox Code Playgroud)
nm.notify引发了异常
我在两个不同的应用程序中遇到此问题,我从不修改代码
swi*_*Boy 40
我在Jelly Bean 4.1.2中得到了相同的异常,然后是我为解决这个问题所做的更改
1.清单文件中的添加权限.
<uses-permission
android:name="android.permission.VIBRATE"></uses-permission>
Run Code Online (Sandbox Code Playgroud)
2. Try-Catch涵盖的通知组成
try
{
mNotificationManager = (NotificationManager)
this.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
this)
.setSmallIcon(R.drawable.ic_notif_alert)
.setContentTitle(getResources().getString(R.string.app_name))
.setStyle(new NotificationCompat.BigTextStyle().bigText(msg))
.setContentText(msg)
.setStyle(bigTextStyle)
.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE);
mBuilder.setAutoCancel(true);
mBuilder.setContentIntent(contentIntent);
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
Log.d(TAG, "---- Notification Composed ----");
}
catch(SecurityException se)
{
se.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ark 29
由于此错误仅发生在Android 4.2和4.3上,您可以将其用作解决方法(即包含maxSdkVersion):
<uses-permission android:name="android.permission.VIBRATE" android:maxSdkVersion="18"/>
Run Code Online (Sandbox Code Playgroud)
注意:maxSdkVersion属性仅在API级别19中添加,在这种情况下幸运的是我们想要的最小值!从理论上讲,我们可以将任何值<= 18来获得相同的效果,但这样做会很糟糕.
归档时间: |
|
查看次数: |
18385 次 |
最近记录: |