2012-06-19 48 views

回答

7

設爲靜音模式到正常模式(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); 
        } 
    
2
AudioManager manager = (AudioManager) getContext().getSystemService(AUDIO_SERVICE); 
manager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); 
+0

&維尼特:感謝您的幫助,但「getSystemServic e「是一個不確定的,你能告訴我該怎麼做嗎? –

+0

'getSystemService'是'Context'類的一個方法。我編輯了我的答案。 –

2

嘗試這個辦法:使用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; 
} 
+0

謝謝你們的幫助。但我實際上得到了我實際上得到了我的解決方案從這裏:: AudioManager audioManager =(AudioManager)context.getSystemService(Context.AUDIO_SERVICE); \t \t int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING); \t \t audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); \t \t audioManager.setStreamVolume(AudioManager.STREAM_RING,maxVolume,AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND); –

0

,使之成爲對以上棉花糖的Android設備上工作

AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE); 
audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); 
相關問題