首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Android通知api启用振动和灯光?

如何使用Android通知api启用振动和灯光?
EN

Stack Overflow用户
提问于 2010-07-21 17:24:55
回答 2查看 23.8K关注 0票数 17

我使用以下代码创建了一个创建通知的应用程序:

代码语言:javascript
复制
// notification
Notification notification = new Notification(R.drawable.notification_icon, title, System.currentTimeMillis());
notification.flags |= Notification.FLAG_AUTO_CANCEL;

// parameters
String ringtone = prefs.getString(context.getString(R.string.key_notifications_ringtone), "");
if (ringtone.length() > 0) {
    notification.sound = Uri.parse(ringtone);
    notification.audioStreamType = AudioManager.STREAM_NOTIFICATION;
}

boolean useVibrator = prefs.getBoolean(context.getString(R.string.key_notifications_use_vibrator), false);
if (useVibrator) {
    notification.defaults |= Notification.DEFAULT_VIBRATE;
}

boolean useLed = prefs.getBoolean(context.getString(R.string.key_notifications_use_led), false);
if (useLed) {
    notification.defaults |= Notification.DEFAULT_LIGHTS;
    notification.flags |= Notification.FLAG_SHOW_LIGHTS;
}

// alert
RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.notification);
contentView.setImageViewResource(R.id.notification_icon, R.drawable.icon);
contentView.setTextViewText(R.id.notification_title, title);
contentView.setTextViewText(R.id.notification_text, text);
notification.contentView = contentView;

Intent notificationIntent = new Intent(context, MyActivity.class);

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.contentIntent = contentIntent;

notificationManager.notify(1, notification);

通知起作用,并使用正确的铃声。

然而,即使正确地激活了首选项并且正确地设置了通知标志(我通过调试检查了),通知永远不会振动,也不会导致灯被激活。

我可能会责怪我的手机设置,但所有其他使用通知的应用程序,比如消息、gmail和其他应用程序,都正确地使用了所有这些功能。

有人知道我做错了什么吗?(我的手机是搭载Android 2.1的HTC Hero )

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-21 18:05:43

向清单文件添加权限

代码语言:javascript
复制
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>

编辑

对于光源,请尝试显式添加它们,默认光源可能配置为nolight

代码语言:javascript
复制
notification.flags |= Notification.FLAG_SHOW_LIGHTS;
notification.ledARGB = 0xff00ff00;
notification.ledOnMS = 300;
notification.ledOffMS = 1000;
票数 28
EN

Stack Overflow用户

发布于 2010-12-09 21:17:09

除了奔腾10的回答之外:

将您的设备置于睡眠状态,灯将亮起!;)

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3297835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档