Android Material各种颜色设置
Blogpost about support appcompat v21 from Chris Banes
Android6.0的运行时权限细节就不赘述了,详细可见文末参考资料的第2篇,详细讲解下于此相关的三个api(个人理解)。
ContextCompat.checkSelfPermission()//检查权限
ActivityCompat.requestPermissions()//请求权限
onRequestPermissionsResult()//回调函数
函数定义:
该函数返回一个int,如果返回的整形值等于PackageManager.PERMISSION_GRANTED说明已经拥有改权限,如果返回值等于PackageManager.PERMISSION_DENIED说明没有拥有权限。
注:PackageManager.PERMISSION_GRANTED和PackageManager.PERMISSION_DENIED是PackageManager的两个int常量,专门用于表示是否拥有权限。
第一步检查权限的结果如果是PackageManager.PERMISSION_GRANTED,那么该干嘛干嘛去,因为你已经拥有改权限(例如使用摄像头),如果检查结果是PackageManager.PERMISSION_DENIED,那么就要申请到权限才能干你想干的。
函数定义:
void requestPermissions (Activity activity,
String[] permissions,
int requestCode)
主要说明该函数的三个参数(最让我难以理解的是第三个参数)
1.activity
activity就是要申请权限的activity,写this就可以。
2.permissions
这是一个String数组,该数组包含我们要申请的权限列表,比如要申请的权限有:Manifest.permission.READ_CONTACTS等好几个,就把这些权限(String)添加到该数组中。
注:这说明可以批量申请权限
3.requestCode
这是一个int,是程序猿自定义的一个参数,用法如下:
private static final int REQUEST_PERMISSION_CAMERA_CODE = 1;
requestPermissions( this,
new String[]{Manifest.permission.CAMERA},
REQUEST_PERMISSION_CAMERA_CODE);
那么该参数有何用呢?请看第三个函数onRequestPermissionsResult。
第二个函数(requestPermissions)执行完之后,会回调onRequestPermissionsResult,把请求结果告诉请求者,成或者不成总得有个说法不是!程序猿需要重写这个方法,对不同的结果执行不同的对策。
@Override
public void onRequestPermissionsResult( int requestCode,
String permissions[],
int[] grantResults)
{
switch (requestCode) {
//仔细看英文注释,这是官方文档的例子,注释写的很好
case REQUEST_PERMISSION_CAMERA_CODE: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, yay! Do the
// contacts-related task you need to do.
} else {
// permission denied, boo! Disable the
// functionality that depends on this permission.
}
return;
}
// other 'case' lines to check for other
// permissions this app might request
}
}
注意case之后的代码,这就是我们之前定义的那个常量,对了,他的作用就是定位你申请的是那个权限,前面也说了,可以一次申请多个权限,那么怎么对应我们申请的权限和申请结果呢?就靠这个int常量了。
参考资料(绝对干货):
http://blog.csdn.net/lmj623565791/article/details/50709663
https://developer.android.com/training/permissions/requesting.html?hl=zh-cn#perm-request
微信关注我们
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。
Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。