使用Android O的画中画功能

时间:2017-04-11 13:39:44

标签: android android-activity android-view android-window android-picture-in-picture

我创建了一个Android应用来检查Android O的功能画中画模式。 但是我在运行此应用程序时遇到错误。

setPictureInPictureArgs:设备不支持画中画模式

 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)

2 个答案:

答案 0 :(得分:1)

有时设备运行在Android-O及更高版本上,但由于RAM大小过低而被设备禁用,因此无法运行PIP。

因此,在您的应用使用PIP之前,最好通过调用Select * from transaction where name in (SELECT Customer.Name FROM Customer WHERE invited_by = "John Doe") 来检查功能是否可用。

hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)

参考:https://developer.android.com/guide/topics/ui/picture-in-picture#best

答案 1 :(得分:0)

此问题在Android O的稳定版本中不再可重现。