2011-07-05

在 Android 裡讀取簡訊收件匣

Android 以 Content provider 的方式提供簡訊資料,位址為 content://sms/inbox,因為資料為多筆,所以使用 ListActivity 讀取 Cursor 方式呈現。
public class ReadSMSFolderActivity extends ListActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Cursor cursor = this.getContentResolver().query(
                Uri.parse("content://sms/inbox"), null, null, null, null);
        this.startManagingCursor(cursor);
        ListAdapter adapter = new SimpleCursorAdapter(this,
                R.layout.readsmsfolder, cursor, new String[] {
                    "body"
                }, new int[] {
                    R.id.row
                });
        this.setListAdapter(adapter);
    }

}
要給予 android.permission.READ_SMS 的權限,並在 manifest 裡設定該 activity。
<activity android:name="ReadSMSFolderActivity"></activity>
最後還有供 ListAdapter 使用的 layout 檔案 res/layout/readsmsfolder.xml。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
 <TextView android:id="@+id/row" android:layout_width="fill_parent" android:layout_height="fill_parent" />
</LinearLayout>

沒有留言:

張貼留言