创建
如果打开as的界面不同,可能是版本不一样
1.选 Empty Activity
2.基本设置
2.1里面的save location 最好改一下,知道他放在哪里了,我这里就直接在桌面创建了一个文件夹
2.2里面的最低api等级,看你自己的需求改
3.创建完成
3.1如果这里对界面有什么想法
File->setting->appearance and behavior->appearance
这里可以改一下颜色或者字体大小
4.获取动态权限
4.1需要的权限
Android 6.0也就是API等级23之后,获取权限需要动态申请,否则程序无法正常使用,所以我们先判断API有没有23
文件存储权限,摄像头权限(如果是调用系统摄像头就不要申请这个权限),因为现在的手机几乎都是6.0之后的手机,所以我们需要获取动态权限,如果不申请动态权限的话,就需要自己打开手机设置里面的权限设置,手动给软件获取权限
下面这段放置的路径为:app/manifes/AndroidManifest.xml,放在application上面,如下图
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>
4.2申请权限
- 声明变量
private static final String[] FILE_PERMISSIONS = {Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA};
//这里用数组,是为了方便还有其他权限,照着这个格式往后面加就好了
private static final int FILE_PERMISSIONS_CODE = 1;
- 判断是不是api大于23,如果构建的时候出现一些红色的提示,按Alt+Enter,这样可以解决一些简单的问题
//创建这个方法,记得把方法放到 onCreate 方法中
private void requestPermission() {
// 当API大于 23 时,才动态申请权限
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(MainActivity.this,FILE_PERMISSIONS,FILE_PERMISSIONS_CODE);
}
}
然后加上下面的申请权限的代码
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case FILE_PERMISSIONS_CODE:
//权限请求失败
if (grantResults.length == FILE_PERMISSIONS.length) {
for (int result : grantResults) {
if (result != PackageManager.PERMISSION_GRANTED) {
//弹出对话框引导用户去设置
showDialog();//方法在下面
Toast.makeText(MainActivity.this, "请求权限被拒绝", Toast.LENGTH_LONG).show();
break;
}
}
}else{
Toast.makeText(MainActivity.this, "已授权", Toast.LENGTH_LONG).show();
}
break;
}
}
做到这一步之后,如果真机运行的话,应该就可以动态申请权限了