﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Beyond Anything!-文章分类-AndroidDev</title><link>http://www.cppblog.com/msopengl/category/15450.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 10 Aug 2011 00:58:25 GMT</lastBuildDate><pubDate>Wed, 10 Aug 2011 00:58:25 GMT</pubDate><ttl>60</ttl><item><title>android get contact&amp;sms</title><link>http://www.cppblog.com/msopengl/articles/143594.html</link><dc:creator>Skill</dc:creator><author>Skill</author><pubDate>Thu, 07 Apr 2011 02:27:00 GMT</pubDate><guid>http://www.cppblog.com/msopengl/articles/143594.html</guid><wfw:comment>http://www.cppblog.com/msopengl/comments/143594.html</wfw:comment><comments>http://www.cppblog.com/msopengl/articles/143594.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/msopengl/comments/commentRss/143594.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/msopengl/services/trackbacks/143594.html</trackback:ping><description><![CDATA[
		<wbr>
				<b>1.get sms</b>
				<br />
/**<br />
    * 读取短信<br />
    * @return<br />
    */<br />
    public String getSmsAndSendBack()<br />
    {<br />
       String[] projection = new String[] {<br />
         "_id",<br />
         "address",<br />
         "person",<br />
         "body"<br />
        };<br />
       StringBuilder str=new StringBuilder();<br />
       try{<br />
        Cursor myCursor = managedQuery(Uri.parse("content://sms/inbox"),<br />
          projection,<br />
          null, null , "date desc");<br />
        str.append(processResults(myCursor, true));  <br />
        str.append("getContactsAndSendBack has executed!");<br />
    /*    myCursor = managedQuery(Uri.parse("content://sms/inbox"),<br />
          new String[] { "_id", "address", "read" },<br />
          " address=? and read=?",<br />
          new String[] { "12345678901", "0" }, "date desc");*/       <br />
       }<br />
       catch (SQLiteException ex)<br />
       {<br />
        Log.d(LOG_TAG, ex.getMessage());<br />
       }<br />
       return str.toString();<br />
    }<br />
    <br />
    /**<br />
    * 处理短信结果<br />
    * @param cur<br />
    * @param all 用来判断是读一条还是全部读。后来没有用all，可以无视<br />
    */<br />
    private StringBuilder processResults(Cursor cur, boolean all) {<br />
       // TODO Auto-generated method stub<br />
       StringBuilder str=new StringBuilder();<br />
       if (cur.moveToFirst()) {<br /><br />
             String name;<br />
             String phoneNumber;      <br />
             String sms;<br />
                      <br />
             int nameColumn = cur.getColumnIndex("person");<br />
             int phoneColumn = cur.getColumnIndex("address");<br />
             int smsColumn = cur.getColumnIndex("body");<br />
            <br />
             do {<br />
                 // Get the field values<br />
                 name = cur.getString(nameColumn);            <br />
                 phoneNumber = cur.getString(phoneColumn);<br />
                 sms = cur.getString(smsColumn);<br />
                <br />
                 str.append("{");<br />
                 str.append(name+",");<br />
                 str.append(phoneNumber+",");<br />
                 str.append(sms);<br />
                 str.append("}");                            <br />
                 if (null==sms)<br />
                 sms="";<br />
                               <br />
    /*             if (all)<br />
                 
mView.loadUrl("javascript:navigator.SmsManager.droidAddContact('" + name
 + "','" + phoneNumber + "','" + sms +"')");            <br />
                 else<br />
                 
mView.loadUrl("javascript:navigator.sms.droidFoundContact('" + name + 
"','" + phoneNumber + "','" + sms +"')");*/<br />
                             <br />
             } while (cur.moveToNext());<br />
    /*         if (all)<br />
             mView.loadUrl("javascript:navigator.SmsManager.droidDone()");<br />
             else<br />
             mView.loadUrl("javascript:navigator.sms.droidDone();");*/<br />
         }<br />
         else<br />
         {<br />
         str.append("no result!");<br />
    /*     if(all)<br />
            mView.loadUrl("javascript:navigator.SmsManager.fail()");<br />
         else<br />
            mView.loadUrl("javascript:navigator.sms.fail('None found!')");*/<br />
         }<br />
       return str;<br />
    }//processRes<br /><b>2.get contact:</b><br />
类  Person为:<br />
package com.pansafe.www;<br /><br />
import java.util.List;<br /><br />
public class Person {<br />
    private String name;<br />
    private List&lt;String&gt; phone;<br />
    private String email;<br />
    private String address;<br />
    public String getName() {<br />
        return name;<br />
    }<br />
    public void setName(String name) {<br />
        this.name = name;<br />
    }<br />
    public List&lt;String&gt; getPhone() {<br />
        return phone;<br />
    }<br />
    public void setPhone(List&lt;String&gt; phone) {<br />
        this.phone = phone;<br />
    }<br />
    public String getEmail() {<br />
        return email;<br />
    }<br />
    public void setEmail(String email) {<br />
        this.email = email;<br />
    }<br />
    public String getAddress() {<br />
        return address;<br />
    }<br />
    public void setAddress(String address) {<br />
        this.address = address;<br />
    }<br />
    public void addPhone(String phone){<br />
        this.phone.add(phone);<br />
    }<br />
}<br /><br />
类PersonList为：<br />
package com.pansafe.www;<br /><br />
import java.util.List;<br /><br />
import android.content.Context;<br />
import android.view.LayoutInflater;<br />
import android.view.View;<br />
import android.view.ViewGroup;<br />
import android.widget.BaseAdapter;<br />
import android.widget.LinearLayout;<br />
import android.widget.TextView;<br /><br />
public class PersonList extends BaseAdapter{<br />
    private List&lt;Person&gt; list;<br />
    private Context context;<br />
    public PersonList(Context context,List&lt;Person&gt; list) {<br />
        this.context=context;<br />
        this.list=list;<br />
    }<br />
    public int getCount() {<br />
        return list.size();<br />
    }<br /><br />
    public Object getItem(int position) {<br />
        return position;<br />
    }<br /><br />
    public long getItemId(int position) {<br />
        return position;<br />
    }<br /><br />
    public View getView(int position, View convertView, ViewGroup parent) {<br />
        LayoutInflater inflater=LayoutInflater.from(context);<br />
        LinearLayout layout=(LinearLayout) inflater.inflate(R.layout.main, null);<br />
        Person person=list.get(position);<br />
        TextView textName=(TextView) layout.findViewById(R.id.textName);<br />
        textName.setText(person.getName());<br />
        TextView textPhone=(TextView) layout.findViewById(R.id.textPhone);<br />
        for(String phone:person.getPhone()){<br />
            textPhone.setText(textPhone.getText()+phone+",");<br />
        }<br />
        TextView textEmail=(TextView) layout.findViewById(R.id.textEmail);<br />
        textEmail.setText(person.getEmail());<br />
        TextView textAddress=(TextView) layout.findViewById(R.id.textAddress);<br />
        textAddress.setText(person.getAddress()==null?"":person.getAddress());<br />
        return layout;<br />
    }<br />
}<br />
active实现部分<br />
//           TextView tv = new TextView(this);<br />
//           tv.setText("Hello, Android");          <br />
//           tv.setText(getSmsAndSendBack());           <br />
//           setContentView(tv);<br />
           <br />
//           ListView listView=new ListView(this);<br />
//           PersonList list2=new PersonList(this,getPerson());<br />
//           listView.setAdapter(list2);<br />
//           setContentView(listView);<br />
           <br />
//        try {<br />
//            FileOutputStream os = this.openFileOutput("Android.txt", MODE_PRIVATE);<br />
//<br />
//            <br />
//        } catch (FileNotFoundException e) {<br />
//            // TODO Auto-generated catch block<br />
//            e.printStackTrace();<br />
//        }<br /><b>权限：</b><br />
    &lt;uses-permission android:name="android.permission.READ_CONTACTS"&gt;&lt;/uses-permission&gt;<br />
    &lt;uses-permission android:name="android.permission.READ_SMS" /&gt;<br />
    <br />
    &lt;uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" /&gt;<br />
    &lt;uses-permission android:name="com.android.broswer.permission.WRITE_HISTORY_BOOKMARKS" /&gt;<br />
    &lt;uses-permission android:name="android.permission.READ_CONTACTS" /&gt;<br />
    <br />
    &lt;uses-permission android:name="com.google.android.providers.gmail.m.permission.READ_GMAIL"/&gt;<br />
    <br />
    <br /><br /></wbr>
<img src ="http://www.cppblog.com/msopengl/aggbug/143594.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/msopengl/" target="_blank">Skill</a> 2011-04-07 10:27 <a href="http://www.cppblog.com/msopengl/articles/143594.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>