Java 以编程方式启用图片模式下的图片

Java 以编程方式启用图片模式下的图片,java,android,picture-in-picture,Java,Android,Picture In Picture,我正在Android视频播放应用程序中进行设置活动,我想知道是否可以通过编程方式启用/禁用PIP(画中画)模式 为了澄清,我完全知道可以通过应用程序高级设置或特殊应用程序访问来更改此设置,但我想将此作为最后手段。(如果没有其他替代方案) 此外,此活动与视频线程页面本身是隔离的(这意味着用户在进入此页面之前必须完全停止视频) 我想这样做的主要原因是,这是一个额外的提醒,这个应用程序支持这个功能,如果用户忘记了在哪里重新激活这个功能 可以这样想:添加另一层用户友好性以下是检查设置的方法: AppOp

我正在Android视频播放应用程序中进行设置活动,我想知道是否可以通过编程方式启用/禁用PIP(画中画)模式


为了澄清,我完全知道可以通过应用程序高级设置或特殊应用程序访问来更改此设置,但我想将此作为最后手段。(如果没有其他替代方案)

此外,此活动与视频线程页面本身是隔离的(这意味着用户在进入此页面之前必须完全停止视频)

我想这样做的主要原因是,这是一个额外的提醒,这个应用程序支持这个功能,如果用户忘记了在哪里重新激活这个功能


可以这样想:添加另一层用户友好性

以下是检查设置的方法:

AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
return (AppOpsManager.MODE_ALLOWED == appOpsManager.checkOpNoThrow(AppOpsManager.OPSTR_PICTURE_IN_PICTURE,
        context.getApplicationInfo().uid, context.getPackageName()));

我没有尝试以编程方式进行设置,但这可能是您的一个起点。

“我完全知道,可以通过应用程序高级设置或特殊应用程序访问来更改此设置”-我不知道您的意思。您使用普通API:正如我前面所说,用户可以通过设置->应用->(我们的应用程序名称)->高级或设置->特殊应用程序访问->图片中的图片来启用/禁用PIP。如果您在清单中的活动上有
android:supportsPictureInPicture=“true”
,则您的应用程序将自动显示在该列表中。用户仍然可以进入此设置屏幕并禁用PiP访问。如果是这样的话,那么你没有办法从应用程序中更改它。我甚至不确定是否有一种官方的方式来判断这种设置是什么。