我试图了解有关指示灯及其使用方法的更多信息,所以我正在创建一个应用程序,以在出现不同的通知时使指示灯闪烁不同的颜色。问题是,如果某个通知已经在控制指示灯,则我不能做自己的事情,是否有阻止它的其他应用程序或覆盖它们的方法?

这是我的通知侦听器代码

public class NotificationListener extends NotificationListenerService
{
    private final String TAG = "NotificationListenerTestingTag";
    private NotificationManager notifMgr;

    @Override
    public void onCreate()
    {
        super.onCreate();
        Log.v(TAG, "Service Created");

        // Get the Notification Manager
        notifMgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    }

    @Override
    public void onNotificationPosted(StatusBarNotification n)
    {
        Log.i(TAG, "Notification Posted: " + n.getPackageName());

        // Turn on indicator light
        Notification ledControll = new Notification();
        ledControll.ledARGB = Color.argb(255, 0, 255, 0);
        ledControll.flags |= Notification.FLAG_SHOW_LIGHTS;
        ledControll.priority = Notification.PRIORITY_MAX;
        ledControll.ledOnMS = 200;
        ledControll.ledOffMS = 300;

        notifMgr.notify(n.hashCode(), ledControll);

    }

    @Override
    public void onNotificationRemoved(StatusBarNotification n)
    {
        Log.i(TAG, "Notification Removed: " + n.getPackageName());

        // Turn off indicator light
        notifMgr.cancel(n.hashCode());

    }

}

最佳答案

我正在创建一个应用程序,以在出现不同的通知时使指示灯闪烁不同的颜色


这不太可能很好地工作。例如,您不能将指示灯添加到缺少该指示灯的硬件中,也不能将您的应用程序过滤为仅适用于具有指示灯的设备。


  是否有阻止它的其他应用程序或覆盖它们?


不能。您也不能阻止设备将指示灯用于其他目的,例如充电状态。

10-04 17:53