Android 安装apk时未显示权限
我正在用FlashBuilder制作一个带有ActionScript的Android应用程序。我需要对我的应用程序使用WiFi权限。该应用程序在桌面上工作没有问题(AIR桌面项目)。现在,当我尝试为Android(移动项目)制作时,它没有显示任何错误。我启用了所需的权限(网络和wifi),并创建了.apk文件。然而,当我在Android 6.0.1设备上安装.apk文件时(注5),它声称该应用程序不要求任何权限。 我决定向adobe网站申请所有权限Android 安装apk时未显示权限,android,permissions,actionscript,Android,Permissions,Actionscript,我正在用FlashBuilder制作一个带有ActionScript的Android应用程序。我需要对我的应用程序使用WiFi权限。该应用程序在桌面上工作没有问题(AIR桌面项目)。现在,当我尝试为Android(移动项目)制作时,它没有显示任何错误。我启用了所需的权限(网络和wifi),并创建了.apk文件。然而,当我在Android 6.0.1设备上安装.apk文件时(注5),它声称该应用程序不要求任何权限。 我决定向adobe网站申请所有权限 <android> <ma
<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;
}
}
只需将下面的代码更改为显示所需的权限
if (ContextCompat.checkSelfPermission(YourActivityName.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED)
处理权限的旧方法(应用程序方面)应该仍然适用于棉花糖(我的其他应用程序也适用)。同样,当我请求权限时,也会使用“旧”方式,有些会被请求,但有些不会。也许您使用的是targetSdk=23?如果这是真的,那么您应该在需要时询问所有必要的权限。如果你不想浪费时间询问权限,只需将targetSdk版本降低到22我使用的是ActionScript而不是JAVA。
if (ContextCompat.checkSelfPermission(YourActivityName.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED)