0

我必须仅在装有Android 7+的设备上启用振动。在以前的版本中,我们可以简单地这样做:如何启用Android 7+的振动

AudioManager aManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
aManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); 

权限android.permission.VIBRATE设置。

我该如何在Android 7+上完成此操作?

+0

请检查也许是必要采取运行时间许可。 –

回答

0

我从来没有使用你的代码的震动,但我想我下面的代码适用于Android的7+(未测试)

尝试:

import android.os.Vibrator; 

[...] 

Vibrator v = (Vibrator) this.context.getSystemService(Context.VIBRATOR_SERVICE); 
// Vibrate for 500 milliseconds 
v.vibrate(500); 

注:这是更好地检查您的设备可以震动:

if (v.hasVibrator()) { 
    Log.v("Can Vibrate", "YES"); 
} else { 
    Log.v("Can Vibrate", "NO"); 
} 

更多解释,通过利亚姆地理看一看到一个更precisely answer rge Betsworth

希望它可以帮助你!

+0

我不想让设备从我的应用程序中震动。我想在主设备设置中启用/禁用振动。像声音一样,关闭或仅振动。 – egmontr

0

在Android 7中,您需要更改设备设置以切换任何设置参数的权限。 您可以在应用程序信息中看到授予此权限的选项。

你会发现一个名为单独的列表项目,

Modify system settings

Modify System Settings

,当你点击它,你将被要求授予权限或没有。

默认情况下,此参数设置为No。改变这一点,你的代码将完美工作。

或者,您可以添加的权限,

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

提供默认的访问。

我希望这会有所帮助。这个选项还取决于你所在的ROM。

0

尝试在清单

<uses-permission android:name="android.permission.VIBRATE"/> 

附加的许可,则类似的代码

import android.os.Vibrator; 
    ........... 

    Vibrator viber= (Vibrator) this.context.getSystemService(Context.VIBRATOR_SERVICE); 
    viber.vibrate(500); //("time in milliseconds") 
+0

我不想开始振动。我想在主设备设置中启用/禁用振动。像声音一样,关闭或仅振动。 – egmontr

+0

'aManager.setRingerMode(1)'试试这个 –