江西教育网站建设,推广引流系统,Wordpress插件完全删除,网站聊天代码我们在使用一些官方app时#xff0c;刚下载进去之后经常会弹出各种各样的权限获取请求#xff0c;今天简单学习了下#xff0c;希望不会误人子弟哈哈哈哈。
一、将需要用到的权限添加到Manifest清单里 uses-permission android:nameandroid.permission.WRITE_EXT…我们在使用一些官方app时刚下载进去之后经常会弹出各种各样的权限获取请求今天简单学习了下希望不会误人子弟哈哈哈哈。
一、将需要用到的权限添加到Manifest清单里 uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE/uses-permission android:nameandroid.permission.RECORD_AUDIO/这一步很重要本人Debug时发现如果缺少这步进入界面后点击屏幕毫无反应......
private static final String[] REQUEST_PERMISSIONS {Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.RECORD_AUDIO,
};
private static final int PERMISSION_REQUEST_CODE 1;同时将对应的权限放到1个String数组里标记一个权限申请标识码。
二、OnStart方法申请权限
在OnStart方法里判断权限是否申请过如果没有进行申请申请的方法里用到了之前的String数组和权限申请标识码
Override
protected void onStart() {super.onStart();if (!hasPermissionsGranted(REQUEST_PERMISSIONS)) {Log.d(Tag,-------activityCompat.requestPermissions--------);ActivityCompat.requestPermissions(this, REQUEST_PERMISSIONS, PERMISSION_REQUEST_CODE);}
}hasPermissionsGranted方法遍历String里的权限检测是否已经授予。 /*** ContextCompat类的checkSelfPermission方法用于检测用户是否授权了某个权限。* PackageManager.PERMISSION_DENIED -1* PackageManager.PERMISSION_GRANTED 0 表示授权成功*/public boolean hasPermissionsGranted(NonNull String[] permissions) {for (String permission : permissions) {if (ActivityCompat.checkSelfPermission(this, permission)! PackageManager.PERMISSION_GRANTED) {return false;//此时没有授权返回false}}return true;//已经授权过返回true}onRequestPermissionsResult方法在对应的Activity中获取到回调结果通过标识码和hasPermissionsGranted方法判断是否授予权限成功失败则调用finish()方法退出应用。
Override
public void onRequestPermissionsResult(int requestCode, NonNull String[] permissions, NonNull int[] grantResults) {Log.d(Tag,-------onRequestPermissionsResult--------);if (requestCode PERMISSION_REQUEST_CODE) {if (!hasPermissionsGranted(REQUEST_PERMISSIONS)) {//返回false代表申请失败Toast.makeText(this, 授权失败, Toast.LENGTH_SHORT).show();this.finish();}} else {super.onRequestPermissionsResult(requestCode, permissions, grantResults);}
}综上一个简单的权限申请demo已经成功。后续也可以在定制化的申请弹窗方面研究一下。
如有错误和疑问敬请矫正