- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
首先我检查了所有这些链接:
但是当我收到推送通知时,我的手机无法振动。这是我的代码:
推送接收器
public class PushReceiver extends FirebaseMessagingService {
public PushReceiver() {
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if(remoteMessage.getData() != null){
Map<String, String> data = remoteMessage.getData();
sendNotification(data.get("message"));
}
else{
if(remoteMessage.getNotification() != null) {
sendNotification(remoteMessage.getNotification().getBody());
}
}
}
private void sendNotification(String messageBody) {
Intent intent = new Intent(this, BaseActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_done_all_24dp)
.setContentTitle(getString(R.string.str_notification_order_ready))
.setContentText(messageBody)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
notificationBuilder.setVibrate(new long[] { 1000, 1000, 1000, 1000, 1000 });
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(ConstantUtils.NOTIFICATION_ID_ORDER_READY, notificationBuilder.build());
}
}
许可
<uses-permission android:name="android.permission.VIBRATE"/>
测试
Device: Nexus 5
Android version: 6.0.1
我应该使用某种未知的魔法来让它发挥作用吗?
最佳答案
您还可以将 setDefaults (int defaults)
用于您的 NotificationCompat.Builder
实例,它为您提供默认系统声音、振动和通知灯。
该值应该是一个 或多个以下字段与按位或(|) 组合:DEFAULT_SOUND , DEFAULT_VIBRATE , DEFAULT_LIGHTS .
对于所有默认值,请使用 DEFAULT_ALL .
Ex. 根据您的代码,您正在设置默认声音,因此,如果您想设置默认声音和振动:
notificationBuilder.setDefaults(DEFAULT_SOUND | DEFAULT_VIBRATE);
如果你想要所有默认设置,你可以通过设置 notificationBuilder.setDefaults(-1)
来实现它,它被认为是 DEFAULT_ALL 值。
参见安卓doc对于setDefaults。
编辑:
振动有 1000 毫秒的延迟。如果将第一个设置为 0,它将立即关闭。这是一种{延迟、振动、 sleep 、振动、 sleep }模式
// Each element then alternates between delay, vibrate, sleep, vibrate, sleep
notificationBuilder.setVibrate(new long[] { 1000, 1000, 1000, 1000, 1000});
关于android - 推送通知时振动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39174818/
在我的应用中,一些 View 对 onLongClick 使用react。在其他情况下,我想实现相同的功能,但我想知道 View 的哪一部分被长按——所以我用 onTouchEvent 模拟它。长按的
我正在尝试使用声音管理器应用程序为“铃声、通知、媒体、系统”创建不同的声音配置文件。 根据设置音量级别,我通过使用 成功了 AudioManager setStreamVolume(AudioMana
有没有办法以编程方式禁用 iPhone 的振动? 我能找到的只是如何启用振动。基本上我想通过 UISwitch 切换振动模式。 如果有办法的话,有人可以帮我吗? 最佳答案 据我所知你不能这样做。因为苹
好像无法播放提示音 AudioServicesPlayAlertSound(kSystemSoundID_Vibrate); 当 AudioQueue 用于录制音频时。那是对的吗?也许我做错了什么。除
我正在尝试振动/摇动一个 UI 元素,即一个控件,就好像它被敲击一样,并且正在共振。我可以使用核心动画将其垂直、水平或同时摇动一个像素: CABasicAnimation* rotationXAnim
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: Making the iPhone vibrate 如何以编程方式使 iPhone 振动? 任何想法或教程链接表示赞
以下代码无法运行... function onPageLoad(){ navigator.vibrate([500]);} 在移动设备上测试它,当我附加到按钮时它可以工作但不能加载??? 最佳
我正在我的应用程序中构建一个锻炼计时器。工作流程是: 用户点击“启动计时器”按钮 计时器倒计时 90 秒秒 计时器在 90 秒后结束并触发 PlayAlertSound振动 这仅在应用程序打开时有效,
您好,我已经创建了一个任务提醒应用程序。例如,您选择某个时间提醒某项任务,当该时间到来时,状态栏上会出现通知。 但是我想实现一个振动功能,可能还有一个带有通知的 LED 灯功能,但我不知道从哪里开始?
我正在开发一个应用程序,该应用程序会在计时器耗尽时发送本地通知。我已经把那部分全部设置好了。三十秒标记有通知,然后从十秒到一秒。当十比一的情况发生时,所有通知都会混在一起,变得有点困惑。现在我只剩下十
我正在使用 firebase 向我的应用程序(iOS 和 Android)发送通知。我不喜欢使用 data 字段来发送我的通知,因为对于 iOS,当用户强制退出应用程序时,不会调用 didReceiv
直到今天,我一直在模拟器中测试我的应用程序。我第一次在真实的 iPhone 上测试了一个项目。令我感到不快的是,每次我按下按钮时手机都会振动。这没什么大不了的,只是我的特定应用程序有一个内置键盘,每次
我有 slider 和一些输出框来显示这些 slider 的值。当用户移动 slider 并且值发生变化时,页面的其余部分会移动/抖动以适应新的(非常轻微的)值大小的增加。防止这种情况的最佳方法是什么
非常基本的问题,几个小时以来我一直试图自己弄清楚,但无法解决。 所以我正在为 Pebble 创建我的第一个表盘,我希望 watch 每小时发出嗡嗡声(振动)。您还记得一些数字 watch 会在点钟时间
我在收到通知时听不到声音、振动或灯光。有人可以告诉我我缺少什么吗? 还有一些问题: 1.) 我只在应用程序打开时得到指定的图标。当应用程序关闭时,我会看到 android Logo 图标(我想那是因为
我正在使用此代码购买音频线的编译错误。有谁知道为什么吗? - (void)handleTimer:(NSTimer *)timer { self.counter--; self.tim
我一直在尝试使用这段代码让 iPhone 振动: AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 但是没有用,会不会是我在调用这个的同时播放
我查看了 http://caniuse.com/但找不到任何关于振动 API 兼容性的信息。 哪些浏览器支持它? 最佳答案 更新 [2014-03-07]:Firefox、Chrome 和 Opera
iPhone如何设置振动一次? 例如,当玩家失去生命或游戏结束时,iPhone 应该振动。 最佳答案 来自“iPhone Tutorial: Better way to check capabilit
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 这行代码在 iPad 上似乎不起作用 - iPad 是否具有振动所需的硬件? 最佳答案 它没
我是一名优秀的程序员,十分优秀!