2012-10-01 6 views
0

나는 사용자 정의 다이얼러를 만들었으며 버튼의 프레스 event.Now에서 톤을 설정했습니다. 지금 문제는이 시간에 고정되어 있으므로 볼륨이 고정되어 있습니다. 전화 응용 프로그램 톤에서 다음 침묵 모드에있는 것은 내가 손님 걸기 위해 전화 걸기 키 volume.The 코드를 기반으로 사용자 정의 할 played.So도 것은 다음과 같습니다 :전화 걸기 키 톤 볼륨을 고객 전화 걸기 키로 설정

public void onCreate(Bundle savedInstanceState) { 
     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.keypad1); 
     ctx = this; 



     b1 = (ImageButton) findViewById(R.id.imageButton1); 
     b2 = (ImageButton) findViewById(R.id.imageButton2); 
     b3 = (ImageButton) findViewById(R.id.imageButton3); 
     b4 = (ImageButton) findViewById(R.id.imageButton4); 
     b5 = (ImageButton) findViewById(R.id.imageButton5); 
     b6 = (ImageButton) findViewById(R.id.imageButton6); 
     b7 = (ImageButton) findViewById(R.id.imageButton7); 
     b8 = (ImageButton) findViewById(R.id.imageButton8); 
     b9 = (ImageButton) findViewById(R.id.imageButton9); 
     b10 = (ImageButton) findViewById(R.id.imageButtonstar); 
     b11 = (ImageButton) findViewById(R.id.imageButton0); 
     b12 = (ImageButton) findViewById(R.id.imageButtonhash); 

     call = (ImageButton) findViewById(R.id.imageButtoncall); 
     back = (ImageButton) findViewById(R.id.back); 
     logout = (ImageButton) findViewById(R.id.imageButtonlogout); 
     keypad = (ImageButton) findViewById(R.id.imageButtondialpad); 
     txt = (EditText) findViewById(R.id.txtnum); 
     /*AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
     int streamMaxVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); 
     Log.i("volume",""+streamMaxVolume);*/ 
     mp1 = new ToneGenerator(AudioManager.STREAM_DTMF,70); 

     txt.addTextChangedListener(new TextWatcher() { 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, 
        int count) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, 
        int after) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void afterTextChanged(Editable s) { 
       // TODO Auto-generated method stub 
       txt.setSelection(txt.getText().length()); 
      } 
     }); 



     b1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       s = txt.getText().toString(); 
       txt.setText(s + "1"); 
       mp1.stopTone(); 
       mp1.startTone(ToneGenerator.TONE_DTMF_1, 120); 
      } 
     }); 

    b2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       s = txt.getText().toString(); 


       txt.setText(s + "2"); 
       mp1.stopTone(); 
       mp1.startTone(ToneGenerator.TONE_DTMF_2, 120); 

      } 
     }); 
     b3.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       s = txt.getText().toString(); 
       txt.setText(s + "3"); 
       mp1.stopTone(); 
       mp1.startTone(ToneGenerator.TONE_DTMF_3, 120); 

      } 
     }); 
     b4.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       s = txt.getText().toString(); 
       txt.setText(s + "4"); 
       mp1.stopTone(); 
       mp1.startTone(ToneGenerator.TONE_DTMF_4, 120); 

      } 
     }); 
     b5.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       s = txt.getText().toString(); 
       txt.setText(s + "5"); 
       mp1.stopTone(); 
       mp1.startTone(ToneGenerator.TONE_DTMF_5, 120); 

      } 
     }); 
+0

안녕하세요,이 질문에 대한 해결책을 얻었습니까? –

+0

당신이 가진 응답을 추가하십시오 soultion –

답변

2

한 제안 솔루션이 될 수있다, 당신이 만약 돈 자동 모드에서 키 톤을 재생하고 싶지 않다면 전화 벨소리 모드를 감지해야합니다. 날씨는 자동입니다.

 AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
     int ringerMode = audioManager.getRingerMode(); 

     if ((ringerMode == AudioManager.RINGER_MODE_SILENT) || (ringerMode == AudioManager.RINGER_MODE_VIBRATE)) 
     { 
      // do nothing 
     }else { 

      // do something 
     }