7

ユーザーが特定のキーワードでSMSを送信すると、電話モードがサイレントモードからリンガーモードに変わるアプリケーションを作成しています。このアプリケーションは主に、ユーザーが家のどこかでセルを失い、サイレントモードになっているときに機能します。私の主な質問は、オーディオマネージャを介して電話モードを変更するにはどうすればよいですか?

4

4 に答える 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)

  1. 権限をAndroidManifest.xml定義するACCESS_NOTIFICATION_POLICY

    <uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
    
  2. あなたの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));
            }
        }
    }
    
  3. 最後にリンガーモードを変更するには、このメソッドを呼び出します

    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 に答える