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 + '\'' +
'}';
}
}
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);
}
}
}
private void smsMethod() {
ContentResolver resolver = getContentResolver();
Uri uri= Telephony.Sms.CONTENT_URI;
String[] strs={Telephony.Sms.BODY,Telephony.Sms.ADDRESS};
Cursor cursor=resolver.query(uri,strs,null,null,null);
//第一种ListView 中 第二种 :存到数据库
ArrayList list=new ArrayList<>();
while(cursor.moveToNext()){
String address=cursor.getString(cursor.getColumnIndex(Telephony.Sms.ADDRESS));
String body=cursor.getString(cursor.getColumnIndex(Telephony.Sms.BODY));
Toast.makeText(this, body, Toast.LENGTH_SHORT).show();
list.add(new Msm(address,body));
//执行insert语句
}
}
smsId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
requestPermissions(new String[]{Manifest.permission.READ_SMS,Manifest.permission.SEND_SMS},101);
}else{
smsMethod();
}
}
});
@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();
}else if (requestCode == 101 & grantResults[0] == PackageManager.PERMISSION_GRANTED){
smsMethod();
}
}