当用户取消通知栏中的投影时,Android MediaProjection API回调

时间:2015-03-24 13:01:32

标签: android android-5.0-lollipop android-mediaprojection

我目前正在使用Android 5.0 MediaProjection API。我已经成功地从我的应用程序启动了投影会话,但是我注意到用户可以在任何时间点转到通知栏并停止媒体投影。我的目标是捕获此事件并执行一些清理操作。我在MediaProjection对象中注册了MediaProjection.Callback,但是,当我从通知栏手动取消投影并且系统尝试调用我的MediaProjection.Callback的onStop方法时,我收到如下的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 个答案:

答案 0 :(得分:2)

这显然已在Android 5.1版本中修复。