Android手机震动的设置步骤

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android手机震动的设置步骤相关的知识,希望对你有一定的参考价值。

参考技术A   a、通过系统服务获得手机震动服务,Vibrator vibrator = (Vibrator)getSystemService(VIBRATOR_SERVICE);

  b、得到震动服务后检测vibrator是否存在:

  vibrator.hasVibrator();

  检测当前硬件是否有vibrator,如果有返回true,如果没有返回false。

  c、根据实际需要进行适当的调用,

  vibrator.vibrate(long milliseconds);

  开始启动vibrator持续milliseconds毫秒。

  vibrator.vibrate(long[] pattern, int repeat);

  以pattern方式重复repeat次启动vibrator。(pattern的形式为new long[]arg1,arg2,arg3,arg4......,其中以两个一组的.如arg1 和arg2为一组、arg3和arg4为一组,每一组的前一个代表等待多少毫 秒启动vibrator,后一个代表vibrator持续多少毫秒停止,之后往复即 可。Repeat表示重复次数,当其为-1时,表示不重复只以pattern的方 式运行一次)。

  vibrator.cancel();

  Vibrator停止。

  注意:在使用震动服务时需要如下权限:android.permission.VIBRATE。

ios 接收到推送消息时实现持续响铃震动效果

参考技术A 项目中需要实现一个功能:收到特定类型的推送消息时,需要一端持续的响铃加震动来提醒用户,普通的推送消息可以播放30s以内的提示音,但是只会震动一下,用ios提供的Notification Service Extension 可以实现连续震动的效果,它不依赖于APP的存活状态,会最多存活30s的时间。具体实现方式如下:
1,创建Notification Service Extension扩展

创建完成后,会自动生成以下两个方法:

这里有三点需要注意:
1,只有调用self.contentHandler(self.bestAttemptContent);回调方法时,推送的通知条消息才会出现在应用中,如果一直不回调该方法,等30s后,系统会自动调用- (void)serviceExtensionTimeWillExpire方法;
2:ios的服务扩展可以和app进行通信,有多种通信方式比如利用通知中心 CFNotificationCenterRef,或者socket,这里我选择使用的是共享内存的方式:

"group.com.XXXXXX" 需要自己创建一个共享内存的组名,当用户点击推送通知时,根据名称找到当前内存,并设置一个值,在扩展中就能够获取该值了。

2,在扩展中,使用NSTimer作为计时器时,自测无效(个人认为因为NSTimer运行依赖于NSRunLoop导致的),无法触发计时器运行,使用dispatch_source_t能够很好地运行。
3,要想在扩展中接收到推送的消息,推送消息中还应该增加一个字段:“mutable-content”: 1

以上是关于Android手机震动的设置步骤的主要内容,如果未能解决你的问题,请参考以下文章

Android 手机震动提示效果 Android Vibrator 手机震动

Android 手机震动提示效果 Android Vibrator 手机震动

使用命令 让Android手机 震动几秒钟,可以实现吗?

android 设置整个app的通知栏Notification 的声音和震动用啥方法

Android Studio手机来指定短信就发出震动和铃声?如何编程?

android 之实现手机震动功能