为什么uniapp(uni.vibrateLong)程序进入后台,和息屏之后不震动,手机是正常状态非静音,之前是可以的
![爱好编程](https://img-cdn-tc.dcloud.net.cn/account/identicon/226d10fabcf8d357b3257826487c823c.png)
- 发布:2020-04-01 21:13
- 更新:2023-08-15 18:05
- 阅读:1579
程序息屏后不震动
![y***@jwtech.com.cn](https://img-cdn-tc.dcloud.net.cn/account/identicon/3914b5e165de6ca380e61e55605b127d.png)
可能是安卓版本较高,我用下面的代码可以实现app后台震动提醒
代码流程参考 https://www.jianshu.com/p/3ec9158b2041
plus API 参考:https://www.html5plus.org/doc/zh_cn/android.html#plus.android.currentWebview
function vibrate(){
try{
var Build = plus.android.importClass("android.os.Build");
//高于安卓8.0
if(Build.VERSION.SDK_INT >= 26){
var Context = plus.android.importClass("android.content.Context");
var main = plus.android.runtimeMainActivity();
var vibrateService = main.getSystemService(Context.VIBRATOR_SERVICE);
var AudioAttributes = plus.android.importClass("android.media.AudioAttributes");
var audioAttributesBuilder = new AudioAttributes.Builder();
plus.android.invoke(audioAttributesBuilder,'setContentType',AudioAttributes.CONTENT_TYPE_SONIFICATION);
plus.android.invoke(audioAttributesBuilder,'setUsage',AudioAttributes.USAGE_ALARM);
var audioAttributes = plus.android.invoke(audioAttributesBuilder,'build');
plus.android.invoke(vibrateService,'vibrate',patern,-1,audioAttributes);
}else{
plus.device.vibrate();
}
}catch(e){
console.log(JOSN.stringify(e));
}
}
s***@126.com
请问解决了吗
2023-04-05 16:55