我正在使用FlashBuilder制作一个带有ActionScript的
Android应用程序.我需要为我的应用使用WiFi权限.该应用程序在桌面上运行没有问题(AIR桌面项目).现在,当我尝试为Android(移动项目)制作它时,它显示我没有错误.我启用了我需要的权限(网络和wifi)并制作了.apk文件.但是,当我在Android 6.0.1设备上安装.apk文件时(注5),它声称应用程序要求没有权限.
我决定要求adobe网站的所有权限
<android>
<manifestAdditions>
<![CDATA[
<manifest>
<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_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
]]>
</manifestAdditions>
它要求一些,但不是为了一些.它没有要求的是以下
<manifest>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
</manifest>
我尝试用FlashBuilder制作一个新的MobileProject.我把它作为默认设置(空白屏幕)并要求获得互联网许可.它也没有要求许可.两个应用程序立即在午餐时崩溃
现在,对包含权限的文件发出警告,“没有检测到文档的语法约束(DTD或XML模式)”但实际上在我触摸其中的任何内容之前就会出现在新项目中.
最佳答案
Actually android has new policy to show runTime premission from the marshmallow to you need to implement premission at runtime like this in Activity
protected void checkPermissionForReadWriteStorage() {
final int writeExternalStorage = ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
final int readExternalStorage = ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE);
if (writeExternalStorage == PackageManager.PERMISSION_GRANTED && readExternalStorage == PackageManager.PERMISSION_GRANTED) {
} else {
boolean requestPermissionRationale = ActivityCompat.shouldShowRequestPermissionRationale(BaseActivity.this, android.Manifest.permission.READ_EXTERNAL_STORAGE);
if (requestPermissionRationale) {
Toast.makeText(BaseActivity.this, "Please provide permission for reading images from gallery.", Toast.LENGTH_SHORT).show();
Intent intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", BaseActivity.this.getPackageName(), null);
intent.setData(uri);
BaseActivity.this.startActivity(intent);
} else {
ActivityCompat.requestPermissions(BaseActivity.this, new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 2);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case 2:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// getLocationAndSaveInDatabaseOrEnableGPS();
}
break;
}
}