我正在开发一个Android应用程序,当应用程序启动时,我想要禁用设备的所有声音和振动。
由于我是新手,所以无法找到如何实现这一点。
有任何想法吗?
先谢谢了。
我正在开发一个Android应用程序,当应用程序启动时,我想要禁用设备的所有声音和振动。
由于我是新手,所以无法找到如何实现这一点。
有任何想法吗?
先谢谢了。
谢谢! :) 我回答自己来完成回答:
AudioManager aManager=(AudioManager)getSystemService(AUDIO_SERVICE);
aManager.setRingerMode(aManager.RINGER_MODE_SILENT);
您需要首先在清单文件中添加更改音频设置的权限。要能够将铃声模式设置为静音,您必须请求访问通知策略的权限。
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
然后在 onClick
事件中(下面是针对一个 textView
的),您可以逐个切换声音设置:
// attach an OnClickListener
audioToggle.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// your click actions go here
NotificationManager notificationManager = (NotificationManager) getActivity().getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
// Check if the notification policy access has been granted for the app.
if (!notificationManager.isNotificationPolicyAccessGranted()) {
Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);
return;
}
ToggleDoNotDisturb(notificationManager);
}
});
private void ToggleDoNotDisturb(NotificationManager notificationManager) {
if (notificationManager.getCurrentInterruptionFilter() == NotificationManager.INTERRUPTION_FILTER_ALL) {
notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_NONE);
audioToggle.setText(R.string.fa_volume_mute);
} else {
notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_ALL);
audioToggle.setText(R.string.fa_volume_up);
}
}
同时你需要检查权限
NotificationManager mNotificationManager = (NotificationManager) getActivity().getSystemService(Context.NOTIFICATION_SERVICE);
// Check if the notification policy access has been granted for the app.
if (!mNotificationManager.isNotificationPolicyAccessGranted()) {
Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);
}
F
不是元音字母 ;) - Muhammad Babar