联系人,来电

1.Android中的联系人都保存在一个SQLite数据库中,路径为:/data/data/com.android.providers.contacts/databases/contacts2.db

第一层,Contact,即ContactContract.Contacts,是整合的联系人信息。

第二层,RawConact,即ContactContract.RawContacts,记录的是该联系人来自某信息源的信息,例如本地输入的,来自Google的,从微软Exchange中导出的,或则来自某个社交网站的信息。每个RawContact记录的信息都来自同一信息源。

第三层,Data,即ContactContract.Data,是具体的信息存储,例如记录联系人姓名,email信息,家庭电话,手机电话信息等等,每一个Data都存放一个具体的信息。在Data中的MIME TYPE说明存储信息的类型。具体在ContactContract.CommonDataKinds中定义。每个Data中有DATA1-DATA15个字段来存储信息,各字段所代表的含义,也可以在CommonDataKinds中具体查到。

 

2.遍历联系人

        String resultStr = "";
       
        //得到contentresolver对象
        ContentResolver contentResolver = getContentResolver();
        
        //取得电话本中光标,

        //PhoneLookup.DISPLAY_NAME
       //ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"//英文排在汉字拼音前面
       String sortOrder="sort_key_alt";//汉字的拼音和英文同等排序

        Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, sortOrder);
        

       //先moveToNext()
        while(cursor.moveToNext())
        {
         //联系人的名字
         String contactName = cursor.getString( cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME));
         resultStr += (contactName +":");
        
         //联系人的ID
         String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
         //查询该位联系人的电话号码,类似的可以查询email,photo
         Cursor phoneCursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
               ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);//第一个参数是确定查询电话号,第三个参数是查询具体某个人的过滤值
        
         //一个人可能有几个号码
         while(phoneCursor.moveToNext())
         {
          String strPhoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
          resultStr += (strPhoneNumber+" ");
         }
         resultStr+="\n";
         
         phoneCursor.close();
        }
        
       cursor.close();

 

3.

Android联系人数据库全解析

http://cruiserzpt99.blog.163.com/blog/static/665249282012740349641/

 

 

2.新增联系人

 

Android简单联系人操作

http://blog.csdn.net/fwwdn/article/details/7547408

 

头像
http://www.devdiv.com/forum.php?mod=viewthread&tid=125410

 

来电拒接

http://hi.baidu.com/huangbz321/blog/item/0059fa228cd9754b9922ed23.html

 

ITelephony.aidl文件内容可以在http://www.netmite.com/android/mydroid/1.5/frameworks/base/telephony/java/com/android/internal/telephony/ITelephony.aidl  或者

http://teddsdroidtools.googlecode.com/svn-history/r33/branches/beta2-devel/teddsdroidtools/src/com/android/internal/telephony/ITelephony.aidl 

找到,这个方法适合没有SDK源码文件的开发者

 

3.  Intent跳转到系统应用中的拨号界面、联系人界面、短信界面及其他

     http://blog.csdn.net/aomandeshangxiao/article/details/6938729

 

4. 向 Android 模拟器打电话和发短消息

    http://www.cnmsdn.com/html/201004/1271831973ID4101.html

    android 模拟器 之 玩转篇(一)

    http://blog.csdn.net/bill830711/article/details/5321158

 

5.[Android] 来电归属地查询的实现思路       
 http://blog.csdn.net/sam_zhang1984/article/details/7212289

  http://blog.sina.com.cn/s/blog_8f5825750100yma5.html


更新联系人电话的相关问题

http://bbs.51cto.com/archiver/tid-872132.html

 http://blog.csdn.net/flowingflying/article/details/7497307

http://hubingforever.blog.163.com/blog/static/171040579201042262729963/

http://www.haoni.org/2011/04/15/androidcontactscontractyanjiu/

http://linyongxiao.blog.163.com/blog/static/18293633020122674255277/





//private SmsContentObserver smsContentObserver;//能修改短信为已读,但是阻止不了系统通知。
//private boolean testsms;

 class SmsContentObserver extends ContentObserver
{
         private Cursor cursor = null;
         public SmsContentObserver(Handler handler) 
         {
        super(handler);
         }


         /**
          * @Description 当短信表发送改变时,调用该方法 
          *                                 需要两种权限
          *                                 android.permission.READ_SMS读取短信
          *                                 android.permission.WRITE_SMS写短信
          * @Author Snake
          * @Date 2010-1-12
          */


         @Override
         public void onChange(boolean selfChange) 
         {
             super.onChange(selfChange);
             
             Log.i("ContentObserver","onChange "+selfChange);
             
             /*
             //读取收件箱中指定号码的短信
             Uri uri=Uri.parse("content://sms/inbox");
             cursor = managedQuery(uri, 
            new String[]{"_id", "address", "read"}, " address=? and read=?", 
            new String[]{"10086", "0"}, "date desc");
             if (cursor != null)
             {
                 ContentValues values = new ContentValues();
                 values.put("read", "1");                //修改短信为已读模式
                 cursor.moveToFirst();
                 while (cursor.isLast())
                 {
                     //更新当前未读短信状态为已读
                     int ret=getContentResolver().update(uri, values, " _id=?", new String[]{""+cursor.getInt(0)});
                     
                     String msg=String.format("id=%d,address=%s,read=%d,update=%d",cursor.getInt(0),cursor.getString(1),cursor.getInt(2),ret);
                     Log.i("SmsContentObserver",msg);
                     
                     cursor.moveToNext();
                 }
             }
             */
         }
}// end  class SmsContent



@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long id) 
{
switch(position)
{
/*
case 0:
{
if(testsms)
{
stringArray[0]="开启监听短信(已关闭)";

this.getContentResolver().unregisterContentObserver(smsContentObserver);
}
else
{
stringArray[0]="关闭监听短信(已开启)";

//注册短信变化监听
if(smsContentObserver==null)
{
smsContentObserver = new SmsContentObserver(new Handler());
}
//Uri uri=Uri.parse("content://sms/");
Uri uri=ContactsContract.Contacts.CONTENT_URI;
this.getContentResolver().registerContentObserver(uri, true, smsContentObserver); 
}

testsms=!testsms;
adapter.notifyDataSetChanged();
}
break;
*/


【Android】短信应用——短信截获

http://blog.csdn.net/etzmico/article/details/7317892

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值