Android部分的命名规范 及Android6.0 权限申请步骤

开发工具与关键技术:studio
撰写时间:2020年05月05日

Layout命名:

1. contentview命名:activity_功能模块.xm  例如:activity_main.xml、activity_more.xml
2. Dialog命名:dialog_描述.xml     例如:dialog_hint.xml 
3. PopupWindow命名:ppw_描述.xml   例如:ppw _info.xml_ 
4. _列表项命名:listitem_描述.xml     例如:listitem_city.xml 
5. 包含项:include_模块.xml     例如:include_head.xml、include_bottom.xml

图片命名:

前缀_{模块}_描述   例如:bg_main.png、ic_main_search.png

空间命名:
命名模式为:view缩写_模块名称_view的逻辑名称;
在这里插入图片描述

Android权限的基本知识点(Android 6.0)
需要单独申请的权限(危险权限和权限组)
在这里插入图片描述

以下是普通权限,只需要在 AndroidManifest.xml 中申请即可

android.permission.ACCESS_LOCATION_EXTRA_COMMANDS 
android.permission.ACCESS_NETWORK_STATE 
android.permission.ACCESS_NOTIFICATION_POLICY 
android.permission.ACCESS_WIFI_STATE 
android.permission.ACCESS_WIMAX_STATE
android.permission.BLUETOOTH 
android.permission.BLUETOOTH_ADMIN 
android.permission.BROADCAST_STICKY 
android.permission.CHANGE_NETWORK_STATE 
android.permission.CHANGE_WIFI_MULTICAST_STATE 
android.permission.CHANGE_WIFI_STATE 
android.permission.CHANGE_WIMAX_STATE 
android.permission.DISABLE_KEYGUARD 
android.permission.EXPAND_STATUS_BAR 
android.permission.FLASHLIGHT 
android.permission.GET_ACCOUNTS 
android.permission.GET_PACKAGE_SIZE 
android.permission.INTERNET 
android.permission.KILL_BACKGROUND_PROCESSES 
android.permission.MODIFY_AUDIO_SETTINGS 
android.permission.NFC 
android.permission.READ_SYNC_SETTINGS 
android.permission.READ_SYNC_STATS 
android.permission.RECEIVE_BOOT_COMPLETED 
android.permission.REORDER_TASKS 
android.permission.REQUEST_INSTALL_PACKAGES 
android.permission.SET_TIME_ZONE 
android.permission.SET_WALLPAPER 
android.permission.SET_WALLPAPER_HINTS 
android.permission.SUBSCRIBED_FEEDS_READ 
android.permission.TRANSMIT_IR 
android.permission.USE_FINGERPRINT 
android.permission.VIBRATE 
android.permission.WAKE_LOCK 
android.permission.WRITE_SYNC_SETTINGS 
com.android.alarm.permission.SET_ALARM 
com.android.launcher.permission.INSTALL_SHORTCUT com.android.launcher.permission.UNINSTALL_SHORTCUT

权限申请步骤

1. 将targetSdkVersion设置为23注意,如果你将targetSdkVersion置为>=23,则必须按照Android谷歌 的要求,动态的申请权限,如果你暂时不打算支持动态权限申请,则 targetSdkVersion最大只能设置为 22。 
2. 在AndroidManifest.xml中申请你需要的权限,包括普通权限和需要申请的特殊权限(dangerous)。
3. 开始申请权限,此处分为3个步骤: 
4. 检查是否由此权限checkSelfPermission(),如果已经开启,则直接做你想做的。 
5. 如果未开启,则判断是否需要向用户解释为什么申请权限 shouldShowRequestPermissionRationale。 6. 如果需要(即返回 true),则可以弹出对话框提示用户申请权限原因,用户确认后申请权限 requestPermissions(),如果不需要(即返回 false),则直接申请权限 requestPermissions()

在这里插入图片描述

请求拨打电话的权限参考代码如下
注意:这是原生android的写法;如果是国内系统,应用的权限设置处理方式会发生改变

final private int REQUEST_CODE_ASK_PERMISSIONS_CALL_PHONE = 101; 
/**    
* confirmPermissions 请求权限(Android6.0 or higher)   
 * @return boolean    */ 
private boolean confirmPermissions(){    
//Android6.0 or higher拥有更严格的权限控制    
//1.检查是否获得CALL_PHONE权限,未获得 通过 ActivityCompat.requestPermissions方法 去请求权限;;;    
// PackageManager.PERMISSION_DENIED 未包含指定的权限    
if(ContextCompat.checkSelfPermission(MainActivity.this,  "android.permission.CALL_PHONE")            == PackageManager.PERMISSION_DENIED){        
//弹出介绍对话框  向用户解释 为什么需要这个权限才能使用功能       
 if(!ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,"andr oid.permission.CALL_PHONE")){           
 AlertDialog dialog=new 
AlertDialog.Builder(MainActivity.this).create();            
dialog.setMessage("您需要授予拨打电话的权限 ,才能使用该功能");
dialog.setButton(AlertDialog.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {               
 @Override               
 public void onClick(DialogInterface dialog, int which) {                   
 ActivityCompat.requestPermissions(MainActivity.this,new 
String[] {"android.permission.CALL_PHONE"},REQUEST_CODE_ASK_PERMISSIONS_CALL_PHONE);                
}            
});            
dialog.show();        
}        
//打开应用的权限设置        
else{            
Intent intent = new Intent();           
 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            
if(Build.VERSION.SDK_INT >= 9){                
intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");               
 intent.setData(Uri.fromParts("package", getPackageName(), null));            
} else if(Build.VERSION.SDK_INT <= 8){                
intent.setAction(Intent.ACTION_VIEW);               
 intent.setClassName("com.android.settings","com.android.settings.InstalledAppDe tails");                
intent.putExtra("com.android.settings.ApplicationPkgName", getPackageName());            
}           
 startActivity(intent);       
 	}    
}    
else {        
return true;    
}    
return false; 
}
//重写Activity的onRequestPermissionsResult()方法 监听用户处理权限的结果 
@Override 
public void onRequestPermissionsResult(int requestCode, String[] permissions, 
int[] grantResults) {   
 switch (requestCode)    
{        
case REQUEST_CODE_ASK_PERMISSIONS_CALL_PHONE://拨打电话权限处理结果            
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {                
callPhone();            
} else {                
Toast.makeText(this, "未获得权限", Toast.LENGTH_SHORT).show();            
}            
break;       
 default:            
super.onRequestPermissionsResult(requestCode, permissions, grantResults);           
 break;    
} 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值