通知点击无法启动在Nexus手机的特定活动无法启动、通知、手机、Nexus

由网友(少帅 °)分享简介:我用这code,显示本地通知,并在通知自带然后点击通知要启动的ListActivity而谷歌Nexus设备上的 ListActiviy 终止不通知启动时,点击,但在其他的设备本code运作良好。意图notificationIntent =新的意图(背景下,ListActivity.class);notification...

我用这code,显示本地通知,并在通知自带然后点击通知要启动的ListActivity而谷歌Nexus设备上的 ListActiviy 终止不通知启动时,点击,但在其他的设备本code运作良好。

 意图notificationIntent =新的意图(背景下,
            ListActivity.class);
    notificationIntent.putExtra(点击,通知已点击);
    notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); //要在启动只能打开一个活动。
    PendingIntent pIntent = PendingIntent.getActivity(背景下,REQ code,
            notificationIntent,PendingIntent.FLAG_UPDATE_CURRENT);
    NotificationManager纳米=(NotificationManager)上下文
            .getSystemService(Context.NOTIFICATION_SERVICE);
    NotificationCompat.Builder通知=新NotificationCompat.Builder(
            上下文);

    notify.setContentIntent(pIntent);
    notify.setSmallIcon(R.drawable.app_icon);
    notify.setContentTitle(的Hello World);
    notify.setContentText();
    notify.setAutoCancel(真正的);
    乌里alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    notify.setSound(alarmSound);
    notify.setLights(Color.BLUE,500,1000);
    nM.notify(REQ code,notify.build());
 

在活动未启动添加logcat的:

  03-26 14:22:35.893:W / ActivityManager(515):权限拒绝:在启动意向书{CMP = com.xy / .music.ui.PlaybackActivity bnds = 42101 ] [636186]从空(有演员)}(PID = -1,UID = 10121),不是从UID 10126出口
03-26 14:22:35.893:W / ActivityManager(515):无法发送startActivity意图
03-26 14:22:35.893:W / ActivityManager(515):java.lang.SecurityException异常:权限被拒绝:在启动意向书{CMP = com.xy / .music.ui.PlaybackActivity bnds = [42101] [636186](有从空演员)}(PID = -1,UID = 10121),不是从UID 10126出口
03-26 14:22:35.893:W / ActivityManager(515):在com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1186)
03-26 14:22:35.893:W / ActivityManager(515):在com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:741)
03-26 14:22:35.893:W / ActivityManager(515):在com.android.server.am.ActivityManagerService.startActivityInPackage(ActivityManagerService.java:3300)
03-26 14:22:35.893:W / ActivityManager(515):在com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:252)
03-26 14:22:35.893:W / ActivityManager(515):在com.android.server.am.PendingIntentRecord.send(PendingIntentRecord.java:192)
03-26 14:22:35.893:W / ActivityManager(515):在android.content.IIntentSender $ Stub.onTransact(IIntentSender.java:64)
03-26 14:22:35.893:W / ActivityManager(515):在android.os.Binder.execTransact(Binder.java:404)
03-26 14:22:35.893:W / ActivityManager(515):在dalvik.system.NativeStart.run(本机方法)
 

解决方案

我上面的code运作良好的所有操作系统版本,除了奇巧4.4和4.4 + 但是,我有我的解决方案,把接收器的另一个过程,它非常适用于所有的大多数Android操作系统版本...

喜欢这种方式。

活动机器人:名称=机器人NotifyReciever。:程序=:远程

,我们可以更多地了解进程这里....

Should我用安卓过程=":远程"在我的接收器?

最新版Android最让人期待的功能都在这里

I am using this code to show the local notification and When notification comes then on click of notification want to launch the ListActivity but on Google nexus device ListActiviy is not launches when click on notification, but on other device this code is working well.

    Intent notificationIntent = new Intent(context,
            ListActivity.class);
    notificationIntent.putExtra("clicked", "Notification Clicked");
    notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |   Intent.FLAG_ACTIVITY_SINGLE_TOP);   // To open only one activity on launch.
    PendingIntent pIntent = PendingIntent.getActivity(context, reqCode,
            notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    NotificationManager nM = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    NotificationCompat.Builder notify = new NotificationCompat.Builder(
            context);

    notify.setContentIntent(pIntent);
    notify.setSmallIcon(R.drawable.app_icon);
    notify.setContentTitle("Hello World");
    notify.setContentText("");
    notify.setAutoCancel(true);
    Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    notify.setSound(alarmSound);
    notify.setLights(Color.BLUE, 500, 1000);
    nM.notify(reqCode, notify.build());

Adding logcat when the activity is not launched:

03-26 14:22:35.893: W/ActivityManager(515): Permission Denial: starting Intent { cmp=com.x.y/.music.ui.PlaybackActivity bnds=[42,101][636,186] (has extras) } from null (pid=-1, uid=10121) not exported from uid 10126
03-26 14:22:35.893: W/ActivityManager(515): Unable to send startActivity intent
03-26 14:22:35.893: W/ActivityManager(515): java.lang.SecurityException: Permission Denial: starting Intent { cmp=com.x.y/.music.ui.PlaybackActivity bnds=[42,101][636,186] (has extras) } from null (pid=-1, uid=10121) not exported from uid 10126
03-26 14:22:35.893: W/ActivityManager(515):     at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1186)
03-26 14:22:35.893: W/ActivityManager(515):     at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:741)
03-26 14:22:35.893: W/ActivityManager(515):     at com.android.server.am.ActivityManagerService.startActivityInPackage(ActivityManagerService.java:3300)
03-26 14:22:35.893: W/ActivityManager(515):     at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:252)
03-26 14:22:35.893: W/ActivityManager(515):     at com.android.server.am.PendingIntentRecord.send(PendingIntentRecord.java:192)
03-26 14:22:35.893: W/ActivityManager(515):     at android.content.IIntentSender$Stub.onTransact(IIntentSender.java:64)
03-26 14:22:35.893: W/ActivityManager(515):     at android.os.Binder.execTransact(Binder.java:404)
03-26 14:22:35.893: W/ActivityManager(515):     at dalvik.system.NativeStart.run(Native Method)

解决方案

My above code is working well for all OS version except Kitkat 4.4 and 4.4 + But i have got solution i, put the receiver in another process and it works well for all most Android OS versions...

Like this way..

activity android:name=".NotifyReciever" android:process=":remote"

and we can learn more about processes here....

Should I use android: process =":remote" in my receiver?

阅读全文

相关推荐

最新文章