在构建时自动添加React-Native不必要的Android用户权限?

Mik*_*ski 22 android react-native

在构建android apk时,似乎读/写外部存储和读取手机状态权限会自动添加到清单中.所有React Native Android应用程序都需要这些吗?有没有办法删除这些权限?

查看build/output/logs/manifest-merger-debug-report.txt,我看到:

android:uses-permission#android.permission.READ_EXTERNAL_STORAGE
IMPLIED from `/***/android/app/src/main/AndroidManifest.xml:1:1-22:12 reason: org.webkit.android_jsc` requested WRITE_EXTERNAL_STORAGE
Run Code Online (Sandbox Code Playgroud)

如果我从Play商店安装应用程序,如果我不使用它们,我会看到请求这些权限,这感觉很奇怪.

par*_*ker 18

我有一个答案.

AndroidManifest.xml中

将此添加到清单应该是第1行

xmlns:tools="http://schemas.android.com/tools"
Run Code Online (Sandbox Code Playgroud)

它看起来应该是这样的

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools"
      package="YOUR PACKAGE NAME">
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用此删除权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

所以我对一个简单应用的权限是

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

不要删除SYSTEM.ALERT.WINDOW,您将在开发中遇到问题.