如何在应用程序运行且屏幕打开时制作LED或轨迹球脉冲或闪光灯?就像收到电话呼叫一样?
由于
答案 0 :(得分:3)
Android具有硬编码功能,只有在屏幕关闭时LED才会亮起。 这是源NotificationManagerService.java:
// lock on mNotificationList
private void updateLightsLocked(){
...
// Don't flash while we are in a call or screen is on
if(mLedNotification == null || mInCall || mScreenOn){
mNotificationLight.turnOff();
}else{
...
}
}
这是功能。不相关的部分被赋予......而实际的行为是评论和可见代码。
我们无法改变这一点。但是,我们对LED通知的调试和测试非常了解。
答案 1 :(得分:0)
我前一段时间写过这个课程,但是我无法使它工作(甚至使用不同的标志组合)你可以找到this post有用。
public class NotificationUtils {
public static void showStatusbarNotification(Context context, CharSequence text) {
NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.icon, text, System.currentTimeMillis());
notification.ledARGB = Color.BLUE;
notification.ledOnMS = 100;
notification.ledOffMS = 100;
notification.defaults |= Notification.DEFAULT_LIGHTS;
notification.flags = notification.flags |
Notification.DEFAULT_LIGHTS |
Notification.FLAG_ONLY_ALERT_ONCE |
Notification.FLAG_SHOW_LIGHTS;
CharSequence contentTitle = context.getText(R.string.app_name);
CharSequence contentText = text;
Intent notificationIntent = new Intent(context, MyActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
nm.notify(0, notification);
}
}
答案 2 :(得分:0)
我过去曾经看过这个问题,似乎Android代码是硬编码的,当屏幕显示开发人员提出的标准通知时会关闭led。
我会再次尝试在android中找到代码。