media-samples: setPictureInPictureArgs: Device doesn't support picture-in-picture mode.

Can not run this sample on Android emulator (API O , Target Android 7+ Google API). the exception is,

 java.lang.IllegalStateException: setPictureInPictureArgs: Device doesn't support picture-in-picture mode.
           at android.os.Parcel.readException(Parcel.java:1923)
           at android.os.Parcel.readException(Parcel.java:1861)
           at android.app.IActivityManager$Stub$Proxy.setPictureInPictureArgs(IActivityManager.java:9378)
           at android.app.Activity.setPictureInPictureArgs(Activity.java:1984)
           at com.example.pip.MainActivity.updatePictureInPictureActions(MainActivity.java:156)
           at com.example.pip.MainActivity$2.onMovieStarted(MainActivity.java:101)
           at com.example.pip.widget.MovieView.play(MovieView.java:350)
           at com.example.pip.widget.MovieView$3.onPrepared(MovieView.java:384)
           at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:3170)
           at android.os.Handler.dispatchMessage(Handler.java:102)
           at android.os.Looper.loop(Looper.java:156)
           at android.app.ActivityThread.main(ActivityThread.java:6440)
           at java.lang.reflect.Method.invoke(Native Method)
           at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:746)

About this issue

  • Original URL
  • State: open
  • Created 7 years ago
  • Reactions: 11
  • Comments: 16

Most upvoted comments

Same for me, seems we dont have any method for know if PIP is disactivated. When desactivate the PIP in Application’s params, the crash occurs, cause getPackageManager().hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE) still returns true

Is this still an issue after the API 27 release? Is it only occurring on the API 26 image?

Side note, if a device does not support PIP, you can check with the package manager.

PackageManager packageManager = getApplicationContext().getPackageManager();
boolean supportsPIP = 
        packageManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE);
if( supportsPIP ) {
    enterPIP();
}