Android 安卓6允许访问互联网

Android 安卓6允许访问互联网,android,android-permissions,Android,Android Permissions,一个月前,我编写了我的第一个应用程序,并在sd卡上设置了写入权限,当活动开始时,我请求权限,我会: if (permission != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) { AlertDi

一个月前,我编写了我的第一个应用程序,并在sd卡上设置了写入权限,当活动开始时,我请求权限,我会:

if (permission != PackageManager.PERMISSION_GRANTED) {

    if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("L'app richiede i permessi di scrittura")
                .setTitle("Richiesta Permessi");

        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int id) {

                makeRequest();
            }
        });

        AlertDialog dialog = builder.create();
        dialog.show();

    } else {
        makeRequest();
    }
}
这是
makeRequest()

现在,我的应用程序需要互联网许可,我已将其放在清单上:

<uses-permission android:name="android.permission.INTERNET" />
但是不要工作。我怎样才能解决这个问题?

请检查

对于将访问互联网的应用程序,这仍然是强制性的。如果开发人员未在Android清单中定义应用程序就发布应用程序,则在第一次尝试连接时会引发异常,应用程序可能会崩溃。这与以前没有什么不同

在安装时授予的有限权限:当用户安装或更新应用程序时,系统将向应用程序授予应用程序请求的受保护的所有权限。例如,闹钟和互联网权限属于正常保护范围,因此在安装时会自动授予它们


谢谢

您不需要请求internet或访问\u network\u state权限,因为Android默认会授予它

我们必须检查一些危险的权限

危险权限列表 日历:读日历,写日历

摄像机:摄像机

联系人:读取联系人、写入联系人、获取帐户

位置:访问精细位置,访问粗略位置

麦克风:录制音频

电话:读取电话状态、呼叫电话、读取呼叫日志、写入呼叫日志、添加语音邮件、使用SIP、处理传出呼叫

传感器:车身传感器

短信息:发送短信息、接收短信息、阅读短信息、接收WAP推送、接收彩信

存储:读取外部存储,写入外部存储

正常权限列表 访问\u位置\u额外\u命令

访问网络状态

访问通知策略

访问无线网络状态

蓝牙

蓝牙管理

广播电台

更改网络状态

更改\u WIFI\u多播\u状态

更改无线网络状态

禁用键盘保护

展开状态栏

手电筒

获取\u包\u大小

互联网

杀死后台进程

修改\u音频\u设置

NFC

读取同步设置

读取同步统计数据

接收\u启动\u完成

重新排序任务

请求\u安装\u软件包

设置时区

布景壁纸

设置壁纸提示

发射红外

使用指纹

震动

唤醒锁

写入同步设置

设置报警

安装快捷方式

卸载快捷方式

有关更多信息,请查看此

如何检查危险权限? 我张贴代码的方式,我没有。假设我们要检查什么
CAMARA
权限

public class Utility {

    public static final int MY_PERMISSIONS_REQUEST_CAMERA = 130;

    public static boolean checkPermissionCAMERA(final Context context) {
        int currentAPIVersion = Build.VERSION.SDK_INT;
        if (currentAPIVersion >= android.os.Build.VERSION_CODES.M) {
            if (ContextCompat.checkSelfPermission(context,
                    Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
                if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) context,
                        Manifest.permission.CAMERA)) {
                    AlertDialog.Builder alertBuilder = new AlertDialog.Builder(context);
                    alertBuilder.setCancelable(true);
                    alertBuilder.setTitle("Permission necessary");
                    alertBuilder.setMessage("Camera permission is necessary");
                    alertBuilder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            ActivityCompat.requestPermissions((Activity) context,
                                    new String[] { Manifest.permission.CAMERA }, MY_PERMISSIONS_REQUEST_CAMERA);
                        }
                    });
                    AlertDialog alert = alertBuilder.create();
                    alert.show();

                } else {
                    ActivityCompat.requestPermissions((Activity) context, new String[] { Manifest.permission.CAMERA },
                            MY_PERMISSIONS_REQUEST_CAMERA);
                }
                return false;
            } else {
                return true;
            }
        } else {
            return true;
        }
    }

    public static void showDialogOK(final Activity context, String message) {
        AlertDialog.Builder alertBuilder = new AlertDialog.Builder(context);
        alertBuilder.setCancelable(true);
        alertBuilder.setTitle("Permission necessary");
        alertBuilder.setMessage(message);
        alertBuilder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                Utility.checkAndRequestPermissions(context);
            }
        });
        AlertDialog alert = alertBuilder.create();
        alert.show();
    }
}
现在进入你的活动

if(Utility.checkPermissionCAMERA(this)){
    // Do work
}
最后覆盖onRequestPermissionsResult

@Override
public void onRequestPermissionsResult(int requestCode,
        String[] permissions, int[] grantResults) {
    switch (requestCode) {
    case Utility.MY_PERMISSIONS_REQUEST_CAMERA:
        if (ContextCompat.checkSelfPermission(Splash_Activity.this,
                Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
            // do work
        }else{
            // take action
        } 
        break;
    }
}
编辑: 如何检查多个权限

public class Utility {

    public static final int REQUEST_ID_MULTIPLE_PERMISSIONS = 101;

    public static boolean checkAndRequestPermissions(final Activity context) {
        int ExtstorePermission = ContextCompat.checkSelfPermission(context,
                Manifest.permission.READ_EXTERNAL_STORAGE);
        int WExtstorePermission = ContextCompat.checkSelfPermission(context,
                Manifest.permission.WRITE_EXTERNAL_STORAGE);
        int cameraPermission = ContextCompat.checkSelfPermission(context,
                Manifest.permission.CAMERA);
        int READ_PHONE_STATE = ContextCompat.checkSelfPermission(context,
                Manifest.permission.READ_PHONE_STATE);
        int location = ContextCompat.checkSelfPermission(context,
                Manifest.permission.ACCESS_FINE_LOCATION);
        int READ_CONTACTS = ContextCompat.checkSelfPermission(context,
                Manifest.permission.READ_CONTACTS);
        int RECORD_AUDIO = ContextCompat.checkSelfPermission(context,
                Manifest.permission.RECORD_AUDIO);
        int internet = ContextCompat.checkSelfPermission(context,
                Manifest.permission.INTERNET);
        List<String> listPermissionsNeeded = new ArrayList<>();
        if (cameraPermission != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.CAMERA);
        }
        if (WExtstorePermission != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded
                    .add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
        }
        if (ExtstorePermission != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded
                    .add(Manifest.permission.READ_EXTERNAL_STORAGE);
        }
        if (location != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.ACCESS_FINE_LOCATION);
        }
        if (READ_PHONE_STATE != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.READ_PHONE_STATE);
        }
        if (READ_CONTACTS != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.READ_CONTACTS);
        }
        if (RECORD_AUDIO != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.RECORD_AUDIO);
        }
        if (internet != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.INTERNET);
        }
        if (!listPermissionsNeeded.isEmpty()) {
            ActivityCompat.requestPermissions(context, listPermissionsNeeded
                    .toArray(new String[listPermissionsNeeded.size()]),
                    REQUEST_ID_MULTIPLE_PERMISSIONS);
            return false;
        }
        return true;
    }

    public static void showDialogOK(final Activity context, String message) {
        AlertDialog.Builder alertBuilder = new AlertDialog.Builder(context);
        alertBuilder.setCancelable(true);
        alertBuilder.setTitle("Permission necessary");
        alertBuilder.setMessage(message);
        alertBuilder.setPositiveButton(android.R.string.yes,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        Utility.checkAndRequestPermissions(context);
                    }
                });
        AlertDialog alert = alertBuilder.create();
        alert.show();
    }
}
公共类实用程序{
公共静态最终整数请求\u ID\u多个\u权限=101;
公共静态布尔检查和请求权限(最终活动上下文){
int ExtstorePermission=ContextCompat.checkSelfPermission(上下文,
清单。权限。读取(外部存储);
int WExtstorePermission=ContextCompat.checkSelfPermission(上下文,
清单。权限。写入(外部存储);
int cameraPermission=ContextCompat.checkSelfPermission(上下文,
舱单、许可、摄像机);
int READ\u PHONE\u STATE=ContextCompat.checkSelfPermission(上下文,
清单。权限。读取(电话状态);
int location=ContextCompat.checkSelfPermission(上下文,
清单。权限。访问(位置);
int READ_CONTACTS=ContextCompat.checkSelfPermission(上下文,
清单。权限。读取联系人);
int RECORD_AUDIO=ContextCompat.checkSelfPermission(上下文,
舱单、许可、录音(音频);
int internet=ContextCompat.checkSelfPermission(上下文,
舱单、许可、互联网);
List ListPermissionsNeed=new ArrayList();
if(cameraPermission!=已授予PackageManager.PERMISSION){
listPermissionsNeed.add(Manifest.permission.CAMERA);
}
if(WExtstorePermission!=已授予PackageManager.PERMISSION){
需要列表许可证
.add(Manifest.permission.WRITE\u外部存储);
}
if(ExtstorePermission!=已授予PackageManager.PERMISSION){
需要列表许可证
.add(Manifest.permission.READ\u外部存储);
}
if(位置!=已授予PackageManager.PERMISSION){
listPermissionsNeed.add(Manifest.permission.ACCESS\u FINE\u位置);
}
if(读取\电话\状态!=已授予PackageManager.权限){
listPermissionsNeed.add(Manifest.permission.READ\u PHONE\u STATE);
}
if(读取联系人!=已授予PackageManager.PERMISSION){
listPermissionsNeed.add(Manifest.permission.READ\u CONTACTS);
}
if(录制音频!=已授予PackageManager.权限){
ListPermissionsNeed.add(Manifest.permission.RECORD_AUDIO);
}
如果(internet!=已授予PackageManager.PERMISSION){
listPermissionsNeed.add(Manifest.permission.INTERNET);
}
如果(!ListPermissionsNeed.isEmpty()){
ActivityCompat.requestPermissions(上下文、ListPermissions需要
.toArray(新字符串[ListPermissionsNeed.size()]),
请求
@Override
public void onRequestPermissionsResult(int requestCode,
        String[] permissions, int[] grantResults) {
    switch (requestCode) {
    case Utility.MY_PERMISSIONS_REQUEST_CAMERA:
        if (ContextCompat.checkSelfPermission(Splash_Activity.this,
                Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
            // do work
        }else{
            // take action
        } 
        break;
    }
}
public class Utility {

    public static final int REQUEST_ID_MULTIPLE_PERMISSIONS = 101;

    public static boolean checkAndRequestPermissions(final Activity context) {
        int ExtstorePermission = ContextCompat.checkSelfPermission(context,
                Manifest.permission.READ_EXTERNAL_STORAGE);
        int WExtstorePermission = ContextCompat.checkSelfPermission(context,
                Manifest.permission.WRITE_EXTERNAL_STORAGE);
        int cameraPermission = ContextCompat.checkSelfPermission(context,
                Manifest.permission.CAMERA);
        int READ_PHONE_STATE = ContextCompat.checkSelfPermission(context,
                Manifest.permission.READ_PHONE_STATE);
        int location = ContextCompat.checkSelfPermission(context,
                Manifest.permission.ACCESS_FINE_LOCATION);
        int READ_CONTACTS = ContextCompat.checkSelfPermission(context,
                Manifest.permission.READ_CONTACTS);
        int RECORD_AUDIO = ContextCompat.checkSelfPermission(context,
                Manifest.permission.RECORD_AUDIO);
        int internet = ContextCompat.checkSelfPermission(context,
                Manifest.permission.INTERNET);
        List<String> listPermissionsNeeded = new ArrayList<>();
        if (cameraPermission != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.CAMERA);
        }
        if (WExtstorePermission != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded
                    .add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
        }
        if (ExtstorePermission != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded
                    .add(Manifest.permission.READ_EXTERNAL_STORAGE);
        }
        if (location != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.ACCESS_FINE_LOCATION);
        }
        if (READ_PHONE_STATE != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.READ_PHONE_STATE);
        }
        if (READ_CONTACTS != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.READ_CONTACTS);
        }
        if (RECORD_AUDIO != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.RECORD_AUDIO);
        }
        if (internet != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.INTERNET);
        }
        if (!listPermissionsNeeded.isEmpty()) {
            ActivityCompat.requestPermissions(context, listPermissionsNeeded
                    .toArray(new String[listPermissionsNeeded.size()]),
                    REQUEST_ID_MULTIPLE_PERMISSIONS);
            return false;
        }
        return true;
    }

    public static void showDialogOK(final Activity context, String message) {
        AlertDialog.Builder alertBuilder = new AlertDialog.Builder(context);
        alertBuilder.setCancelable(true);
        alertBuilder.setTitle("Permission necessary");
        alertBuilder.setMessage(message);
        alertBuilder.setPositiveButton(android.R.string.yes,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        Utility.checkAndRequestPermissions(context);
                    }
                });
        AlertDialog alert = alertBuilder.create();
        alert.show();
    }
}