vbe*_*nar 9 android cordova android-permissions
我需要在游戏中播放声音,所以我将org.apache.cordova.media插件添加到我的应用程序中.现在platforms/android/AndroidManifest.xml包含我不需要的2个条目:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)
如果删除这些行,则会重新生成此文件,并再次添加权限.删除这些权限的正确方法是什么?我使用apache cordova 3.5.0
小智 14
在项目的根目录中创建一个文件,并将其重命名为remove_permissions.js,然后将以下代码放入其中:
var permissionsToRemove = [ "RECORD_AUDIO", "MODIFY_AUDIO_SETTINGS"];
var fs = require('fs');
var path = require('path');
var rootdir = "";
var manifestFile = path.join(rootdir, "platforms/android/app/src/main/AndroidManifest.xml");
fs.readFile( manifestFile, "utf8", function( err, data )
{
if (err)
return console.log( err );
var result = data;
for (var i=0; i<permissionsToRemove.length; i++)
result = result.replace( "<uses-permission android:name=\"android.permission." + permissionsToRemove[i] + "\" />", "" );
fs.writeFile( manifestFile, result, "utf8", function( err )
{
if (err)
return console.log( err );
} );
} );
Run Code Online (Sandbox Code Playgroud)
打开config.xml并在Android部分中添加下面的行:
<platform name="android">
...
<hook type="after_prepare" src="remove_permissions.js"/>
...
</platform>
Run Code Online (Sandbox Code Playgroud)
现在重建APK文件.
cod*_*ion 12
你必须打开plugins/android.json,找到那个看起来像的文件部分
"AndroidManifest.xml": {
"parents": {
"/*": [
......
{
"xml": "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\" />",
"count": 1
},
......
{
"xml": "<uses-permission android:name=\"android.permission.RECORD_AUDIO\" />",
"count": 1
},
......
],
Run Code Online (Sandbox Code Playgroud)
并删除这些文件.删除该行后,请确保android.json仍然是有效的JSON文件.另请注意该count属性,该属性指示有多少插件使用权限.如果您的值超过1,您应该找到哪些其他插件可以使用该权限.此外,我不确定Cordova插件是否在没有适当权限的情况下被测试为可行,所以当您从该文件中删除权限时,您自己就可以了.
如果您将系统置于损坏状态,则始终可以删除平台和插件文件夹的所有内容,并通过运行重新创建项目
cordova create ...
cordova platform add ...
cordova plugin add ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5134 次 |
| 最近记录: |