首选项活动头脑风暴
问题描述:
是否可以使用首选项活动来编写系统卷功能的工作?首选项活动头脑风暴
就像说我想输出一个消息给用户如果音量开得很大,将弹出一个举杯说:“嘿,音量太响”
我知道如何使祝酒词现在我我正在考虑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;
}
}
而现在的logcat:
[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!
答
跟踪音量不是直线前进的,似乎......有许多不同的数据流,当用户离开你的应用程序的音量可以改变,用户可能会连接到具有自己音量控制的扬声器等。
有一个选项可以定义音量按钮应影响哪个流:Activity.setVolumeControlStream()。
但我建议重点关注AudioManager,它充满了有用的方法和意图,如AudioManager.ACTION_AUDIO_BECOMING_NOISY。
如果您想获得特定的帮助,请发布您写的相关代码以及任何logcat错误。希望有所帮助!
肯定会给我一点时间,我会在问题栏中发表。 – 2012-07-07 19:22:44
我添加了有问题的代码。以及LogCat。 – 2012-07-07 19:29:34