Я хочу захватить уровни громкости в фоновом режиме, даже мое приложение закрыто. Я использую 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);
}
Большое спасибо. путают с Android-студией. Он импортируется автоматически. Исправил мой код. –