В настоящее время я использую API 5.0 для мультимедиа Android 5.0. Мне удалось запустить сеанс проекции из моего приложения, однако я заметил, что пользователь может в любой момент перейти на панель уведомлений и остановить медиапроекцию. Моя цель - захватить это событие и выполнить некоторые действия по очистке. Я зарегистрировал MediaProjection.Callback в моем объекте MediaProjection, однако, когда я вручную отменить проецирование из панели уведомлений и система пытается вызвать OnStop метод моего MediaProjection.Callback я получаю исключение NullPointer следующим образом:Обратный вызов API Android MediaProjection, когда пользователь отменяет проекцию из панели уведомлений
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");
}
}
Любые идеи, почему это происходит?
Большое спасибо заранее!
Похож на возможную ошибку: https://code.google.com/p/android/issues/detail?id=148937 Вы не являетесь тем, кто вызывает метод для объекта «null»; рамки. – CommonsWare
Да, похоже. Есть ли какой-либо другой API обратного вызова, который регистрирует аннулирование проекции пользователя? – mtsahakis
Я еще не использовал API MediaProjection, так что я не знаю - извините! – CommonsWare