您的位置:首页 > 移动开发 > Android开发

获取手机的短信内容和联系人信息

2015-07-13 10:22 483 查看
获取短信内容:
编写一个广播接收器(ShortMessageReceiver),其中onReceive方法的代码如下:

public void onReceiver(Context context,Intent intent){
Bundle bundle = intent.getExtras();
if (bundle != null){
//获得收到的短信数据
Object[] objArray (Object[]) bundle.get("pdus");
//定义封装短信内容的SmsMessage对象数组
SmsMessage[] messages=new SmsMessage[objArray.length];
//循环处理收到的所有短信
for (int i=0;i<objArray.length;i++){
//将每条短信数据转换成SmsMessage对象
messages[i] =SmsMessage.createFormPdu((byte[]) objArray[i]);
//获得发送短信的电话号码和短信内容
String s ="手机号:"+messages[i].getDisplayMessageBody();
//显示发送短信的电话号码和短信内容
Toast.makeText(Context,s,Toast.LENGTH_LONG).show();
}
}
}

然后在AndroidMainfest.xml文件中定义ShortMessageReceiver时添加短信广播Action即可,代码如下:
</pre><pre name="code" class="html"><receiver android:name=".ShortMessageReceiver">
android:enabled="true"
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>


读取联系人信息:

使用Content Provider可以读取联系人信息。如下的代码读取了所有联系人信息,并将联系人名称显示在ListView组件中:
ListView listView = (ListView) findViewById(R.id.listview);
//查询系统中所有联系人
Cursor cursor = getContentResolver().query(
ContactsContacts.CONTENT_URI,null,null,null,null);
//根据cursor创建SimpleCursorAdapter对象
SimpleCursorAdapter simpleCursorAdapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1,cursor,new String[]
{ CountactsContract.Contacts.DISPLAY_NAME},new int[]
{android.R.id.text1}  );
//在ListView控件中显示联系人列表
listView.setAdapter(simpleCursorAdapter);


读取联系人信息时,要在AndroidMainfest.xml文件中设置如下权限:

   <uses-permission android:name="android.permission.READ_CONTACTS"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息