运行时权限问题
- 以读物联系人为例,
1)有一个listView展示数据
2)拥有读取联系人的权限
3)读取联系人的数据
展示数据的布局文件和配置
<ListView
android:id="@+id/contract_listView"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
//配置listView
contacts = new ArrayList<>();
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,contacts);
listView.setAdapter(adapter);
判断是否拥有权限
//判断是否有权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_CONTACTS},1);//没有的情况
}else {
readContacts();//有
}
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case 1:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
readContacts();
}else {
Toast.makeText(this,"你拒绝了服务.",Toast.LENGTH_SHORT).show();
}
}
}
读取数据
网友评论