在启动/耳机插件上显示通知图标

时间:2013-10-12 21:50:00

标签: android notifications boot headset

我想这样做,当有人插入耳机时会出现一个通知图标。我已经做到了这一点,当手机开启此运行时,启动MainActivity类,其中包含OnCreate方法中通知图标的代码,因此它只是自动启动。问题在于它启动了我不想要的整个活动和应用程序。我只想要出现图标。我怎么能这样做?谢谢!

public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    Intent myIntent = new Intent(context, MainActivity.class);
    myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(myIntent);
}

上面的代码在启动时启动MainActivity。

通知图标代码

    //Notification Icon Starts
    NotificationManager nm=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification=new Notification(R.drawable.icon_notification, "Icon Notification", System.currentTimeMillis());
    Context context=MainActivity.this;
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), Notification.FLAG_ONGOING_EVENT);        
    notification.flags = Notification.FLAG_ONGOING_EVENT;
    notification.setLatestEventInfo(this, "Notification Icon", "Touch for more options", contentIntent);
    Intent intent=new Intent(context,MainActivity.class);
    PendingIntent  pending=PendingIntent.getActivity(context, 0, intent, 0);
    nm.notify(0, notification);
    //Notification Icon Ends

2 个答案:

答案 0 :(得分:0)

正如我在your last question中所写的那样,在您的清单中添加一个<receiver>来监听ACTION_HEADSET_PLUG广播。 documentation显示Intent个附加内容,您可以使用这些内容来确定是否插入了耳机(state)等。

答案 1 :(得分:0)

我发布了一个解决方案,可让您监控耳机状态(有线和蓝牙),over here。可以轻松扩展此解决方案以允许您显示通知。