You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native安卓权限弹窗显示包名.MainActivity,如何改为显示应用名?

解决React Native安卓CameraRoll权限弹窗显示包名而非应用名的问题

我之前也踩过这个坑!你遇到的问题本质是安卓系统默认会把packagename.MainActivity作为权限请求的发起者显示,但其实只要调整一下安卓原生的配置,就能让弹窗显示你的应用名称,完全不用纠结React Native里PermissionsAndroid的参数限制。

下面是具体的解决步骤:

  • 检查并修改AndroidManifest.xml的应用标签
    打开android/app/src/main/AndroidManifest.xml,找到<application>标签,确保它包含android:label="@string/app_name"这个属性。这个属性会告诉安卓系统用你定义的应用名称来代替包名+Activity名。示例代码如下:

    <application
      android:name=".MainApplication"
      android:label="@string/app_name" <!-- 这行是关键 -->
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme">
      <!-- 你的Activity和其他配置 -->
    </application>
    
  • 确认strings.xml里的应用名称正确
    打开android/app/src/main/res/values/strings.xml,里面的<string name="app_name">标签内容就是你要显示的应用名称。把它改成你想要的名字就行,比如:

    <resources>
        <string name="app_name">Cool Photo App</string>
    </resources>
    
  • 适配Android 13+的小提醒
    如果你的应用目标SDK是33及以上,WRITE_EXTERNAL_STORAGE权限已经被废弃,需要改用READ_MEDIA_IMAGES或者READ_MEDIA_VIDEO这类新权限,但上面的配置依然有效,弹窗还是会显示你在strings.xml里设置的应用名称。

至于你提到的PermissionsAndroid里的title和message参数为什么没起作用——其实在很多安卓版本(尤其是高版本)里,系统会忽略这些自定义参数,优先使用原生配置里的应用名称和系统默认的权限提示文案。所以修改原生配置才是最可靠的解决方式。

内容的提问来源于stack exchange,提问作者Jaro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:21:20