android访问电话号码和电子邮箱
16lz
2021-12-04
package com.example.androidinterviewtest1;import android.app.Activity;import android.database.Cursor;import android.os.Bundle;import android.provider.ContactsContract;import android.provider.ContactsContract.CommonDataKinds.Email;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;import android.widget.SimpleCursorAdapter;import android.widget.Toast;public class MainActivity extends Activity{ ListView listView; Cursor cursor; @Override public void onCreate(Bundle savedInstanceState) { //如果是强制回收之后进入到这个界面的话执行这个savedInstanceState不是空的,如果是第一次进入的话就是null super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //实施被系统强制回收的代码 String string = "kid"; if( savedInstanceState == null ) { string = "kid"; } else { string = savedInstanceState.getString("key"); if( string == null ) { string = "kid"; } } Toast.makeText(getApplicationContext(), string, Toast.LENGTH_SHORT).show(); //读取系统联系的代码 listView = (ListView)findViewById(R.id.listview); cursor = managedQuery( ContactsContract.Contacts.CONTENT_URI, null, null, null, null); startManagingCursor(cursor); String [] strings= new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME }; int ints [] = new int[] { R.id.text1, R.id.text2 }; SimpleCursorAdapter simpleCursorAdapter = new SimpleCursorAdapter(this,R.layout.listviewitem,cursor, strings,ints); listView.setAdapter(simpleCursorAdapter); listView.setOnItemClickListener( new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { System.out.println("arg2="+arg2); System.out.println("arg3="+arg3); String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); String name = cursor.getString( cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME) ); cursor.move(Integer.parseInt(id)); System.out.println("id="+id); System.out.println("name="+name); Cursor email = MainActivity.this.getContentResolver().query( ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID+"="+id, null, null); String string1 = new String(); String strings [] = new String[email.getCount()]; int j=0; while (email.moveToNext()) { string1 += " | " + email.getString( email.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA) ); //strings[j++] = email.getString( email.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA) ); } email.close(); Toast.makeText(MainActivity.this,string1 ,Toast.LENGTH_SHORT).show(); System.out.println("string1 = " + string1); } }); } //当软件被强制回收的操作代码 @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); //写入数据 outState.putString("key", "ljz"); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; }}
首先是首页的代码。。。
主要使用的方法是使用URI的访问,系统的Content Provider的数据。。。。
其中关于联系人的资料,存放在本地的数据库中,而在外面的是可以访问的。。。
更多相关文章
- android studio Listview简单实例
- android CVE 漏洞汇总
- qemu 0.9.1 与 android 环境编译
- android 代码设置间距
- Android屏蔽Home键
- Android获取基站坐标代码
- android强制kill进程
- Android(安卓)静默安装apk
- 学习日记-- Android写文件到SDCard的代码