我正在使用 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;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)