Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在启动/耳机插件上显示通知图标_Android_Notifications_Boot_Headset - Fatal编程技术网

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

Android 在启动/耳机插件上显示通知图标,android,notifications,boot,headset,Android,Notifications,Boot,Headset,我想让它成为这样,当一个耳机插头在那里一个通知图标出现。我已经这样做了,当手机打开时,它会启动MainActivity类,该类在OnCreate方法中有通知图标的代码,所以它会自动启动。问题是它启动了整个活动和应用程序,这是我不想要的。我只想让图标出现。我该怎么做呢?谢谢大家! public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Intent myIn

我想让它成为这样,当一个耳机插头在那里一个通知图标出现。我已经这样做了,当手机打开时,它会启动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);
}
上述代码在引导时启动main活动

通知图标代码

    //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

正如我在中所写,在清单中添加一个侦听
操作\u耳机\u插头
广播的
。显示了
Intent
附加功能,您可以使用这些附加功能来确定耳机是否已插入(
state
),等等。

我发布了一个解决方案,允许您监控耳机状态(有线和蓝牙)。这个解决方案可以很容易地扩展,允许您显示通知。

我明白了。使用这个接收器<代码>但是我如何做一个if-else语句来说明如何处理它。在哪里。这就是令人困惑的地方me@FernandoRamirez例如我不知道你在说什么。您“希望在插入耳机时显示通知图标”。这需要在
BroadcastReceiver
设置的
onReceive()
方法中输入十几行左右的代码,以监听
ACTION\u header\u PLUG
广播。我只需要知道如何在后台工作,比如在不打开应用程序的情况下检测它。就像这个新问题。我已经解决了所有的问题,除了这一个,这是我的最后一个。请详细说明您的问题。哪里需要通知?请为此添加更多代码。@androiduser我确实需要在用户连接耳机时显示通知图标。我希望通知出现在手机的最上面(通知区域,下拉到通知抽屉),我已经有了编写的代码,它可以工作。(更新了主要问题)但我只想在用户插入耳机时运行该代码。我不希望应用程序启动或任何事情,只希望图标出现。