Android 电话查询(扩展成通讯录)
Android 电话查询(扩展成通讯录)
用FIle Explore 我们可以清楚的看见data-->data目录下的通讯录的数据库的所有信息
导出这个数据库我们就可以看所有通讯录的信息
- import java.util.ArrayList;
- import java.util.List;
- import Android.app.Activity;
- import android.content.ContentResolver;
- import android.database.Cursor;
- import android.os.Bundle;
- import android.provider.ContactsContract.CommonDataKinds.Phone;
- import android.provider.ContactsContract.Contacts.Photo;
- import android.util.Log;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ListView;
- import android.widget.Spinner;
- import android.widget.Toast;
- public class ContentProvide_TestActivity extends Activity {
- private Spinner spinner;
- private EditText editText;
- private Button button;
- private ListView listView;
- List<String> list;
- ArrayAdapter<String> adapter;
- private static final String[] ContactInfo=new String[]{Phone.DISPLAY_NAME,Phone.NUMBER,Photo._ID,Phone.TIMES_CONTACTED,Phone.LAST_TIME_CONTACTED};
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- spinner=(Spinner) findViewById(R.id.spinner1);
- editText=(EditText) findViewById(R.id.editText1);
- button=(Button) findViewById(R.id.insert);
- listView=(ListView) findViewById(R.id.listView1);
- list=new ArrayList<String>();
- adapter=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item);
- adapter.add("姓名");//Position=0
- adapter.add("手机号码");//Position=1
- adapter.add("通话次数");//Position=2
- spinner.setAdapter(adapter);
- button.setOnClickListener(new ButtonLIstener());
- }
- class ButtonLIstener implements OnClickListener{
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- // listView.removeAllViewsInLayout();
- list.clear();
- ArrayAdapter<String> adapter3=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, list);
- listView.setAdapter(adapter3);
- Log.i("URL---->", Phone.CONTENT_URI+" ");//content:// com.android.contacts/data/phones
- ContentResolver contentResolver=ContentProvide_TestActivity.this.getContentResolver();
- int Selete=spinner.getSelectedItemPosition();
- String editString=editText.getText().toString();
- if (editString.isEmpty()) {
- Toast.makeText(getApplicationContext(), "请输入要查询的内容", Toast.LENGTH_LONG).show();
- return ;
- }
- String selection=null;
- switch (Selete) {
- case 0:
- selection="DISPLAY_NAME=?";
- Log.i("------>", selection+editString);
- break;
- case 1:
- //selection="NUMBER=?"; 报错这一行,那是因为我们查询的表是contacts表 和 raw_contacts表 以及 data表,这三个表没有NUMBER这个字段,
- selection="DATA1=?";//手机号码是存放在数据库 data表中的data1中,data4中也有,
- Log.i("------>", selection+editString);
- break;
- case 2:
- selection="TIMES_CONTACTED=?";
- break;
- default:
- break;
- }
- Cursor cursor=contentResolver.query(Phone.CONTENT_URI, ContactInfo, selection, new String []{editString}, null);
- System.out.println("-------------"+cursor==null);
- if (cursor!=null) {
- if (cursor.moveToNext()==false) {
- Toast.makeText(getApplicationContext(), "没有查询到你想要的数据", Toast.LENGTH_LONG).show();
- }
- while(cursor.moveToNext())
- {
- String PhoneName=cursor.getString(0);
- Log.i("名字--------->",PhoneName );
- list.add("姓 名:"+PhoneName);
- String PhoneNumber=cursor.getString(1);
- Log.i("电话号码------>", PhoneNumber);
- list.add("电话号码:"+PhoneNumber);
- String ContantS=cursor.getString(3);
- Log.i("通话次数----->", ContantS);
- list.add("通话次数:"+ContantS);
- String LastContants=cursor.getString(3);
- Log.i("最后通话----->", LastContants);
- list.add("最后通话:"+LastContants);
- }
- ArrayAdapter<String> adapter2=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, list);
- listView.setAdapter(adapter2);
- }
- /*
- else if(cursor==null){
- }
- */
- }
- }
- }
布局文件
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text=" 请选择查询方式"></TextView>
- <Spinner android:layout_height="wrap_content" android:id="@+id/spinner1" android:layout_width="match_parent"></Spinner>
- <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/editText1">
- </EditText>
- <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="查询" android:id="@+id/insert"></Button>
- <ListView android:id="@+id/listView1" android:layout_height="wrap_content" android:layout_width="match_parent"></ListView>
- </LinearLayout>
最后记得加一个权限
- <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
运行结果
评论暂时关闭