android – 安装apk时没有显示的权限

我正在使用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;
        }
    }
点赞