我想捕捉音量水平的背景,即使我的应用程序是关闭的。我正在使用AudioManager。但是,下面是错误: ContentObserver (android.os.Handler)在ContentObserver中不能应用于(java.util.logging.Handler)在私有的ContentObserver mVolumeObserver =新的ContentObserver{
我按照下面的链接来解决我的问题:any way to detect volume key presses or volume changes with android service?
这是我的密码:
公共类BackGroundServices扩展服务{
AudioManager mAudioManager;
Handler mHandler;
private ContentObserver mVolumeObserver = new ContentObserver(mHandler) {
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
if(mAudioManager != null){
final int volume = mAudioManager.getStreamVolume(AudioManager.STREAM_RING);
Log.e("TEST","VOLUME STREAM IS : " + volume);
}
}
};
@Override
public IBinder onBind(Intent arg0){
return null;
}
@Override
public void onCreate(){
super.onCreate();
mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
Uri uri = Settings.System.getUriFor(Settings.System.VOLUME_SETTINGS[AudioManager.STREAM_RING]);
getContentResolver().registerContentObserver(uri, true, mVolumeObserver);
}
@Override
public int onStartCommand(Intent intent, int flag, int startId) {
Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show();
return START_STICKY;
}
@Override
public void onDestroy () {
super.onDestroy();
Toast.makeText(this, "Service Destroyed", Toast.LENGTH_SHORT).show();
getContentResolver().unregisterContentObserver(mVolumeObserver);
}}
发布于 2015-04-18 14:25:57
你用错了进口。您使用的是Android的处理程序,但您使用的导入是java.util.logging.handler。该错误还清楚地说明了预期导入的内容。因此,尝试android.os.handler和错误应该消失。
https://stackoverflow.com/questions/29718509
复制相似问题