2012-06-19 9 views
7

ユーザーが特定のキーワードでSMSを送信すると、電話モードがサイレントモードから呼び出し音モードに変更されるアプリケーションを作成しています。このアプリケーションは、ユーザーが自宅のどこかでセルを失い、サイレントモードでセルを失ったときに主に機能します。 私の主な質問は、どのように私はオーディオマネージャーを通して電話モードを変更できますか?オーディオマネージャで振動モードをプログラム的に呼び出し音に変更する方法

答えて

7

設定サイレントモードノーマルモードに(API 23)

  1. AndroidManifest.xml最後に、この方法

    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

&Vineetリンガーモードの呼び出しを変更する

@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)); } } } 
  • を付与されていない場合は、あなたのonResume/onCreate機能で

    <uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/> 
  • ACCESS_NOTIFICATION_POLICY許可が許可を求め定義:助けてくれてありがとうございますが、 "getSystemServic e "は定義されていません、あなたはそれをどうすればいいのですか? –

  • +0

    'getSystemService'は' Context'クラスのメソッドです。私は私の答えを編集しました。 –

    2

    これを試してください:それはマシュマロのために上記のAndroidデバイスのために働くようにするには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

    を使用して

    AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE); 
    audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); 
    
    関連する問題