Android 跨程序共享数据之访问其他应用数据(访问联系人)
跨程序访问其他程序数据很简单,总的来说就是三步:一、动态申请运行时权限,二、按照其格式拼接对应URI获取数据,三、获取到数据后自己显示。本文以获取手机联系人的例子来实现。
首先来看看最后实现效果
由于这里只是做最简单的显示,只是用了最原始的listview。真机调试的,模拟器怎么都无法添加联系人
动态申请获取联系人的权限
代码中Manifest.permission.READ_CONTACTS为读取手机联系人权限,PackageManager.PERMISSION_GRANTED是看用户是否同意了获取该权限,readContacts()是获取联系人的具体方法实现。
//运行时权限申请
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_CONTACTS)!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MainActivity.this,new String[]{
Manifest.permission.READ_CONTACTS},1);
}else {
readContacts();
}
/**
* 权限监控
* @param requestCode
* @param permissions
* @param grantResults
*/
@Override
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(MainActivity.this,