ユーザーが特定のキーワードでSMSを送信すると、電話モードがサイレントモードからリンガーモードに変わるアプリケーションを作成しています。このアプリケーションは主に、ユーザーが家のどこかでセルを失い、サイレントモードになっているときに機能します。私の主な質問は、オーディオマネージャを介して電話モードを変更するにはどうすればよいですか?
質問する
6916 次
4 に答える
8
を使用してサイレントモードを通常モードに設定しますAudioManager
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
switch (am.getRingerMode()) {
case AudioManager.RINGER_MODE_SILENT:
Log.i("MyApp","Silent mode");
am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
break;
}
于 2012-06-19T10:41:54.407 に答える
2
AudioManager manager = (AudioManager) getContext().getSystemService(AUDIO_SERVICE);
manager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
于 2012-06-19T10:39:46.313 に答える
2
これを試して:
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
于 2012-06-19T10:40:12.787 に答える
0
マシュマロ以上のAndroidデバイスで動作させるには(API 23)
権限を
AndroidManifest.xml
定義するACCESS_NOTIFICATION_POLICY
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
あなたの
onResume/onCreate
職務で、許可されていない場合は許可を求めてください@Override protected void onResume() { super.onResume(); NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); //Check if the phone is running Marshmallow or above if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.M) { //If the permission is not granted, launch an inbuilt activity to grant permission if (!nm.isNotificationPolicyAccessGranted()) { startActivity(new Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS)); } } }
最後にリンガーモードを変更するには、このメソッドを呼び出します
public void setRingerMode(Context context,int mode){ /* * mode variable value can be: * AudioManager.RINGER_MODE_SILENT * AudioManager.RINGER_MODE_NORMAL * AudioManager.RINGER_MODE_VIBRATE */ NotificationManager nm = (NotificationManager)context.getSystemService(NOTIFICATION_SERVICE); AudioManager audioManager = (AudioManager)context.getSystemService(AUDIO_SERVICE); if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M && nm.isNotificationPolicyAccessGranted()) audioManager.setRingerMode(mode); }
于 2017-09-16T06:22:19.370 に答える