ContentProvider系统URL
获取手机联系人,展现在ListView中并存储到数据库中
(1)添加获取手机联系人的权限
<uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permissio>
(2) 创建一个javabead.用来存信息
package com.example.day011;
public class Phone {
private String name;
private String number;
public Phone() {
}
public Phone(String name, String number) {
this.name = name;
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
@Override
public String toString() {
return "Phone{" +
"name='" + name + '\'' +
", number='" + number + '\'' +
'}';
}
}
(3)获得手机联系
package com.example.day011;
import android.Manifest;
import android.content.ContentResolver;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.provider.ContactsContract;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button buttonId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonId = findViewById(R.id.button_id);
buttonId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//根据版本动态获取授权(6.0以上)
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
requestPermissions(new String[]{Manifest.permission.WRITE_CONTACTS,Manifest.permission.READ_CONTACTS},100);
}else{
resolverMethod();
}
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode == 100 & grantResults[0] == PackageManager.PERMISSION_GRANTED){
resolverMethod();
}
}
//因为重复使用,所有封装
private void resolverMethod() {
ContentResolver contentResolver = getContentResolver();
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
String[] strings = {ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME};
Cursor cursor = contentResolver.query(uri, strings, null, null, null);
while (cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Toast.makeText(MainActivity.this, name, Toast.LENGTH_SHORT).show();
//有了对象,其他都好说了.
Phone phone = new Phone(name, number);
}
}
}
案例二,获取手机短信
1,在清单文件中添加授权
<uses-permission android:name="android.permissi