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