【问题标题】:How to remove Permissions in Android apps made with PhoneGap Build?如何删除使用 PhoneGap Build 制作的 Android 应用程序中的权限?
【发布时间】:2014-04-29 05:01:18
【问题描述】:

我使用PhoneGap Build 制作了一个WEB 应用程序(Android APK)。 IT 只是一个简单的单页应用程序,其中只有文本和一些小的图形属性。我把它上传到了 Play 商店。现在,当用户下载该应用程序时,他被要求允许该应用程序的所有可能权限。我还没有找到如何控制 PhoneGap Build 的权限。 我的应用不需要特殊权限,我想在 Play 商店的下一次更新中排除它们。 我该如何解决这个问题?

【问题讨论】:

    标签: android web-applications cordova web permissions


    【解决方案1】:

    为了防止插件重新添加不必要的权限,请编辑 plugins/android.json。

    请注意,这是一个“肮脏”的解决方案。添加/更新插件后,您可能需要重复此操作。

    【讨论】:

      【解决方案2】:

      从 AndroidManifest.xml 中删除不必要的使用权限。
      从 res/xml/config.xml 中删除不必要的功能也可能很有用。

      【讨论】:

        【解决方案3】:

        将此添加到您的 config.xml 应该清除所有权限:

        <preference name="permissions" value="none"/>

        【讨论】:

        • 我尝试使用 phonegap-cli 版本 8.1.1,但它不工作。
        【解决方案4】:

        我遇到了同样的问题,帮助我删除不必要权限的是从我的 config.xml

        中删除此代码
        <gap:plugin name="org.apache.cordova.console" />
        
        <gap:plugin name="org.apache.cordova.device" />
        <gap:plugin name="org.apache.cordova.device-motion" />
        <gap:plugin name="org.apache.cordova.device-orientation" />
        <gap:plugin name="org.apache.cordova.dialogs" />
        <gap:plugin name="org.apache.cordova.file" />
        <gap:plugin name="org.apache.cordova.file-transfer" />
        
        <gap:plugin name="org.apache.cordova.globalization" />
        
        <gap:plugin name="org.apache.cordova.media" />
        

        替换为

        <feature name="http://api.phonegap.com/1.0/network"/>
        
        <gap:plugin name="org.apache.cordova.inappbrowser"  />
        
        <gap:plugin name="org.apache.cordova.network-information"  />
        
        <gap:plugin name="org.apache.cordova.splashscreen"  />
        

        这使我的应用程序仅具有访问互联网权限并删除了其他应用程序。 希望这会有所帮助

        【讨论】:

          【解决方案5】:

          这适用于我在当前版本的 PhoneGap Build 中,在 config.xml 文件中。注意 xmlns 条目:

          <?xml version='1.0' encoding='utf-8'?>
          <widget id="it.letturedametropolitana.ldmapp" version="0.1.0"
            xmlns="http://www.w3.org/ns/widgets"
            xmlns:gap="http://phonegap.com/ns/1.0"
            xmlns:android="http://schemas.android.com/apk/res/android">
          
          <gap:config-file platform="android" parent="/manifest" mode="delete">
            <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
            <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
            <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
            <uses-permission android:name="android.permission.CAMERA"/>
            [add any permission you want to delete]
          </gap:config-file>
          

          要知道删除什么以及如何删除,您需要使用apktool 打开打包的 apk 并检查 AndroidManifest.xml 文件:准确复制您需要删除的内容。

          这一切都在docs 中进行了解释,尽管当前版本的文档没有使用 gap 命名空间,并且在我的测试中也不起作用。

          【讨论】:

            【解决方案6】:

            Phonegap Community这个帖子里有人问过。这位老兄使用名为ConfiGAP 的应用程序解决了这个问题,该应用程序可帮助您通过其界面设置 Android 权限。

            【讨论】:

            • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
            • @tomrozb 已经修改了答案。告诉我是否需要添加更多详细信息。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2022-08-16
            • 2013-09-18
            • 1970-01-01
            • 2015-07-18
            • 2015-10-15
            • 2016-03-11
            相关资源
            最近更新 更多