【问题标题】:Using Picture-in-picture feature with Android O在 Android O 中使用画中画功能
【发布时间】:2017-09-06 22:38:55
【问题描述】:

我创建了一个 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)

【问题讨论】:

  • 你在运行什么?
  • 您的设备未运行 Android O,因此由于不支持画中画而引发此异常。

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


【解决方案1】:

有时设备在 Android-O 及更高版本上运行但无法运行 PIP,因为它因 RAM 容量不足而被设备禁用。

因此,在您的应用使用 PIP 之前,最好通过调用 hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE) 来检查功能是否可用。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)) {
            //your code
        }
    }

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我在 android 8.1 上遇到了同样的错误,所以我认为这不是操作系统级别的错误。
    猜你喜欢
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2016-02-28
    相关资源
    最近更新 更多