Обратный вызов API Android MediaProjection, когда пользователь отменяет проекцию из панели уведомлений

В настоящее время я использую Android 5.0 MediaProjection API. Я успешно смог запустить сеанс проецирования из своего приложения, однако я заметил, что пользователь может в любой момент перейти к панели уведомлений и остановить проецирование мультимедиа. Моя цель - запечатлеть это событие и выполнить некоторые действия по очистке. Я зарегистрировал MediaProjection.Callback в моем объекте MediaProjection, однако, когда я вручную отменяю проекцию из панели уведомлений, и система пытается вызвать метод onStop моего MediaProjection.Callback, я получаю исключение nullpointer следующим образом:

03-24 12:54:56.575: W/Binder(9589): Caught a RuntimeException from the binder stub implementation.
03-24 12:54:56.575: W/Binder(9589): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.projection.MediaProjection$CallbackRecord.onStop()' on a null object reference
03-24 12:54:56.575: W/Binder(9589):     at android.media.projection.MediaProjection$MediaProjectionCallback.onStop(MediaProjection.java:188)
03-24 12:54:56.575: W/Binder(9589):     at android.media.projection.IMediaProjectionCallback$Stub.onTransact(IMediaProjectionCallback.java:49)
03-24 12:54:56.575: W/Binder(9589):     at android.os.Binder.execTransact(Binder.java:446)

Мой MediaProjection.Callback на данный момент практически ничего не делает, я вставляю его для полноты:

private class MediaProjectionCallback extends MediaProjection.Callback {
    @Override
    public void onStop() {
        Log.e("MediaProjection", "onStop");
    }
}

Есть идеи, почему это происходит?

Спасибо заранее!

1 ответ

Это было исправлено в версии Android 5.1.

Другие вопросы по тегам