在三星设备上运行代码的原因是否与在沃达丰或其他Android设备上运行的代码不同。
我检查过:
不同之处在于三星没有遵循我设定的振动模式,但沃达丰手机正在完美运行。
这是振动代码:
if (!this.isRunning && startId == 1) {
Log.e("if there was not sound", " and you want to start");
//incorporate vibrating
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
long[] pattern = {0, 15000, 0, 15000};
v.vibrate(pattern, -1);
我只是想让手机振动30秒而不会有任何中断,但是三星手机会停止5秒然后恢复,这与我使用过的代码完全没有特色......有什么想法吗?
答案 0 :(得分:0)
在MainActivity中,在setcontentView();
之后的Oncreate方法中添加以下代码 int PERMISSION_ALL = 1;
String[] PERMISSIONS = {Manifest.permission.VIBRATE};
if(!hasPermissions(this, PERMISSIONS)){
ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
}
然后在你的课程中添加这个功能
public static boolean hasPermissions(Context context, String... permissions) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}