gpt4 book ai didi

android - 如何关闭android上的覆盖权限

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:07:59 28 4
gpt4 key购买 nike

https://facebook.github.io/react-native/docs/integration-with-existing-apps.html

https://medium.com/react-native-development/fixing-problems-in-react-native-caused-by-new-permission-model-on-android-1e547f754b8

谈论覆盖权限。

他们将权限检查代码添加到托管 react native View 的 Activity 中。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.canDrawOverlays(this)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE);
}
}

似乎需要权限,因为 React Native 需要在叠加层中显示调试窗口。

如何在生产构建中关闭它?

最佳答案

我在发布时通过两项更改将其关闭,一项在 list 中,一项在代码中。

首先:在您的主 list (src/main/AndroidManifest.xml) 中,删除以下行:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

在 src/debug/AndroidManifest.xml 中添加一个新的 list ,如下所示

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.mycompany.myapp">

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
</manifest>

这将仅合并调试变体的权限。

其次,对于您提到的代码,我添加了对 BuildConfig.DEBUG 的检查:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.canDrawOverlays(this) && BuildConfig.DEBUG) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE);
}
}

关于android - 如何关闭android上的覆盖权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45347562/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com