2015-04-18 3 views
0

Я хочу захватить уровни громкости в фоновом режиме, даже мое приложение закрыто. Я использую AudioManager. Но я получаю ниже ошибки: ContentObserver (android.os.Handler) в ContentObserver не может быть применен к (java.util.logging.Handler) в частном ContentObserver mVolumeObserver = новый ContentObserver (mHandler) {ContentObserver (android.os.Handler) в ContentObserver нельзя применить к (java.util.logging.Handler)

I а затем сильфон ссылки, чтобы решить мою проблему: 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); 
} 

ответ

0

Вы используете неправильный импорт. Вы используете обработчик Android, но импорт, который вы используете, - java.util.logging.handler. В этой ошибке явно указывается, какой импорт ожидается. Поэтому попробуйте android.os.handler и ошибка должна исчезнуть.

+0

Большое спасибо. путают с Android-студией. Он импортируется автоматически. Исправил мой код. –

Смежные вопросы