我正在製作應用程序,如果用戶使用某些特定關鍵字發送短信,則電話模式將從靜音模式更改爲振鈴模式。該應用程序主要用於用戶在房屋內某處丟失其單元並處於靜音模式時。 我的主要問題是如何通過音頻管理器更改手機模式?如何通過音頻管理器以編程方式將振動模式更改爲鈴聲
7
A
回答
7
設爲靜音模式到正常模式(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); }
2
AudioManager manager = (AudioManager) getContext().getSystemService(AUDIO_SERVICE);
manager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
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);
相關問題
- 1. 如何以編程方式使iOS 5上的振鈴器靜音或更改鈴聲音調
- 2. iPhone:以編程方式將音頻存儲爲鈴聲
- 3. 如何更改鈴聲模式(無聲或振動)
- 4. Android:振鈴模式更改爲靜音不會阻止手機振動
- 5. 如何以編程方式從鈴聲設置默認鈴聲
- 6. 以編程方式啓用/禁用鍵盤聲音和振動
- 7. 振鈴期間更改振鈴器音量
- 8. 如何以編程方式振動iPhone
- 9. 以編程方式訪問/添加/更改聯繫人鈴聲
- 10. 如何以編程方式將iOS的遠程通知配置爲只振動不播放聲音或播放聲音而不振動?
- 11. 如何在Android上以編程方式更改聲音
- 12. 更新通知振動/鈴聲
- 13. 如何將音頻導出爲iOS中的鈴聲(鈴聲)
- 14. 以編程方式更改手機(symbian)揚聲器音量
- 15. 覆蓋振鈴音量應用程式
- 16. 以編程方式設置視頻鈴聲
- 17. 從聲音模式到靜音/振動模式的iPhone狀態
- 18. 如何以編程方式設置聲卡的音頻平衡?
- 19. 如何將鈴聲添加到鈴聲管理器?
- 20. 如何以編程方式更改Ambari管理員密碼
- 21. 當振鈴模式更改爲正常停止服務
- 22. 將手機的狀態從振鈴模式切換到振動模式
- 23. 以編程方式更改Windows資源管理器的外觀?
- 24. 以編程方式振動Myo臂帶
- 25. 以編程方式振動不停
- 26. 如何僅在android中發生通知時以編程方式更改音頻模式?
- 27. 如何以編程方式關閉鈴聲?
- 28. 如何以編程方式播放默認電話鈴聲?
- 29. 如何在黑莓中以編程方式設置鈴聲?
- 30. 如何以編程方式確定iPhone上的默認鈴聲?
&維尼特:感謝您的幫助,但「getSystemServic e「是一個不確定的,你能告訴我該怎麼做嗎? –
'getSystemService'是'Context'類的一個方法。我編輯了我的答案。 –