Δ两个Activity之间跳转;
1 Intent i = new Intent(这个Activity的名字.this, 要跳转的Activity的名字.class);
2 startActivity(i);
Δ获取某权限;
1 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.权限的名字},
2 REQUEST_CAMERA_PERMISSION);
并在AndroidManifest设置;
1 <uses-permission android:name="android.permission.权限的名字" />
检测有无某权限;
1 if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) //获取摄像头权限
2 == PackageManager.PERMISSION_GRANTED) {
3 }
Δ完整的请求获取某权限过程;
if (ContextCompat.checkSelfPermission(CameraActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { // 进入这儿表示没有权限 if (ActivityCompat.shouldShowRequestPermissionRationale(CameraActivity.this, Manifest.permission.CAMERA)) { // 提示已经禁止 } else { ActivityCompat.requestPermissions(CameraActivity.this, new String[]{Manifest.permission.CAMERA}, 100); } } else { mCamera = getCameraInstance(); }
为了帮助查找用户可能需要解释的情形,Android 提供了一个实用程序方法,即 shouldShowRequestPermissionRationale()。如果应用之前请求过此权限但用户拒绝了请求,此方法将返回 true。
注:如果用户在过去拒绝了权限请求,并在权限请求系统对话框中选择了 Don’t ask again 选项,此方法将返回 false。如果设备规范禁止应用具有该权限,此方法也会返回 false。
根据测试shouldShowRequestPermissionRationale的返回值主要以下几种情况 :
第一次打开App时 | false |
上次弹出权限点击了禁止(但没有勾选“下次不在询问”) | true |
上次选择禁止并勾选:下次不在询问 | false |
转载自:作者:cctcc 来源:CSDN 原文:https://blog.csdn.net/cctcc/article/details/79470514
Δ弹出某提示;
1 Toast.makeText(getApplicationContext(), "你要说的话",Toast.LENGTH_SHORT).show();
//第一个参数:当前的上下文环境,可用getApplicationContext()或this;
//第二个参数:你要说的话;
//第三个参数:显示的时间长短;