2012-07-07 4 views
-1

환경 설정 활동을 사용하여 시스템 볼륨 기능에 문제를 작성할 수 있습니까? 볼륨이 너무 크게 설정되어있는 경우환경 설정 활동 브레인 스톰

처럼은

내가 지금 토스트를 만드는 방법을 알고 "이봐 볼륨이 너무 큽니다"라고 건배를 팝업 것 I 출력에 사용자에게 메시지를 원한다고 I pref 활동에 대해 생각하고 있습니다. 여기에서 아이디어를 시작하십시오. 로그 캣에 대한

import android.content.Context; 
import android.media.AudioManager; 
import android.os.Bundle; 
import android.preference.DialogPreference; 
import android.preference.Preference; 
import android.preference.Preference.OnPreferenceChangeListener; 
import android.preference.PreferenceActivity; 
import android.widget.SeekBar; 
import android.widget.SeekBar.OnSeekBarChangeListener; 
import android.widget.Toast; 

public class volman extends PreferenceActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.dhd); 

    DialogPreference dp = (DialogPreference) findPreference("mediavolume"); 
    dp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { 

     public boolean onPreferenceChange(Preference preference, 
       Object newValue) { 
      SeekBar volumeBar = (SeekBar) findViewById(R.id.seekBar); 
      final AudioManager manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 

      volumeBar.setMax(manager 
        .getStreamMaxVolume(AudioManager.STREAM_SYSTEM)); 
      volumeBar.setProgress(manager 
        .getStreamVolume(AudioManager.STREAM_SYSTEM)); 

      volumeBar 
        .setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 
         @Override 
         public void onStartTrackingTouch(SeekBar seekBar) { 
          Toast.makeText(volman.this, "Lift off.... StartSpark", Toast.LENGTH_LONG).show(); 

         } 

         @Override 
         public void onStopTrackingTouch(SeekBar seekBar) { 
          Toast.makeText(volman.this, "Now Stopping", Toast.LENGTH_LONG).show(); 

         } 
         public void onProgressChanged(SeekBar seekBar, 
           int progress, boolean fromUser) { 
          manager.setStreamVolume(
            AudioManager.STREAM_SYSTEM, progress, 
            AudioManager.FLAG_SHOW_UI); 
          Toast.makeText(volman.this, "Now going quiet", Toast.LENGTH_LONG).show(); 
         } 
        }); 

      return false; 
     } 
    }); 
} 

private DialogPreference findPreference(String string) { 
    return null; 
} 
} 

그리고 지금 : 보인다

[2012-07-07 15:25:00 - volman4.0] Android Launch! 
[2012-07-07 15:25:00 - volman4.0] adb is running normally. 
[2012-07-07 15:25:00 - volman4.0] No Launcher activity found! 
[2012-07-07 15:25:00 - volman4.0] The launch will only sync the application package on the device! 
[2012-07-07 15:25:00 - volman4.0] Performing sync 
[2012-07-07 15:25:00 - volman4.0] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'ICS' 
[2012-07-07 15:25:00 - volman4.0] Uploading volman4.0.apk onto device 'emulator-5554' 
[2012-07-07 15:25:00 - volman4.0] Installing volman4.0.apk... 
[2012-07-07 15:25:10 - volman4.0] Success! 
[2012-07-07 15:25:11 - volman4.0] /volman4.0/bin/volman4.0.apk installed on device 
[2012-07-07 15:25:11 - volman4.0] Done! 

답변

1

볼륨 레벨을 추적 많은 다른 스트림은 사용자가 앱이 볼륨을 변경할 수 있습니다 떠날 때,이 있습니다 ... 같은 정직하지 않다 사용자가 자신의 볼륨 컨트롤 등을 사용하여 스피커에 연결할 수 있습니다.

볼륨 버튼에 영향을 줄 수있는 스트림을 정의하는 옵션이 있습니다 (Activity.setVolumeControlStream()).

그러나 나는 AudioManager에 중점을 두어 유용한 방법과 의도로 채워져 있습니다 (AudioManager.ACTION_AUDIO_BECOMING_NOISY).

특정 도움을 받으려면 작성한 관련 코드와 모든 로그 오류를 게시하십시오. 희망이 도움이됩니다!

+0

잠시만 기다려주세요. 질문 입력란에 게시 해 드리겠습니다. –

+0

문제의 코드를 추가했습니다. 뿐만 아니라 LogCat. –

관련 문제