第一次写博客,嘻嘻,记录下自己用过的东西,以后再用就很方便,文章借鉴转至https://blog.csdn.net/lhp15575865420/article/details/79210696
首先在manifests配置文件添加所需权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
代码中动态申请
//动态申请权限,首先定义一个所需权限数组
String[] allpermissions=new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.SYSTEM_ALERT_WINDOW,Manifest.permission.BLUETOOTH};
//定义判断权限申请的函数,在onCreat中调用就行
public void applypermission(){
if(Build.VERSION.SDK_INT>=23){
boolean needapply=false;
for(int i=0;i<allpermissions.length;i++){
int chechpermission= ContextCompat.checkSelfPermission(getApplicationContext(),
allpermissions[i]);
if(chechpermission!=PackageManager.PERMISSION_GRANTED){
needapply=true;
}
}
if(needapply){
ActivityCompat.requestPermissions(MainActivity.this,allpermissions,1);
}
}
}
//重载用户是否同意权限的回调函数,进行相应处理
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
for(int i=0;i<grantResults.length;i++){
if(grantResults[i]==PackageManager.PERMISSION_GRANTED){
//同意后的操作
Toast.makeText(MainActivity.this, permissions[i]+"已授权",Toast.LENGTH_SHORT).show();
}
else {
//不同意后的操作
Toast.makeText(MainActivity.this,permissions[i]+"拒绝授权",Toast.LENGTH_SHORT).show();
}
}
}