0

我想这样做,当有人插入耳机时,会出现一个通知图标。我已经做到了,所以当手机打开时,它会启动 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
4

2 回答 2

0

正如我在您的上一个问题中所写,在您的清单中添加一个<receiver>监听ACTION_HEADSET_PLUG广播的内容。该文档显示Intent了可用于确定耳机是否已插入 ( state) 等的附加信息。

于 2013-10-12T22:01:30.797 回答
0

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

于 2014-04-22T13:26:27.557 回答