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 设置整个app的通知栏Notification 的声音和震动用啥方法