android访问电话号码和电子邮箱

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的数据。。。。

其中关于联系人的资料,存放在本地的数据库中,而在外面的是可以访问的。。。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值