Android 四大組件學習之ContentProvider三

來源:互聯網
上載者:User

標籤:eth   data-   布局   listen   project   content   nts   問題   next   

上節課學習怎樣自己建立一個ContentProvider。以及用ContentResolver去操作ContentProvider。

今天我們用系統提供的ContentProvider。 先來個簡單的,讀取系統的簡訊內容。

依據上節知道。既然要讀取系統的簡訊,那就得先找到系統的簡訊在那裡?

先找到簡訊資料庫所在的問題,然後匯出,查看裡面的內容

既然已經分析好了,我們須要什麼,不須要什麼。 當然還須要知道簡訊提供者給第三方的URL。

這個能夠通過Android原始碼查看。

那我們就寫一個程式,讀取系統中的簡訊

先看Activity中的代碼:

public class ReadMessageActivity extends Activity {Button readMessage;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_readmessage);readMessage = (Button)findViewById(R.id.button1);readMessage.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Log.i("ReadMessageActivity", "讀取連絡人按鈕按下了");ContentResolver cResolver = getContentResolver();/** * uri: 是簡訊提供者的url。能夠通過查看原始碼獲得 * projection:須要查詢的幾個欄位,關心那個查詢按個即可 */Cursor cursor = cResolver.query(Uri.parse("content://sms"), new String[]{"address", "date", "type", "body"}, null, null, null);while(cursor.moveToNext()){String address = cursor.getString(cursor.getColumnIndex("address"));String date = cursor.getString(cursor.getColumnIndex("date"));String type = cursor.getString(cursor.getColumnIndex("type"));String body = cursor.getString(cursor.getColumnIndex("body"));Log.i("ReadMessageActivity", address + ";" + date + ";" + type + ";" + body);}}});}}

布局檔案就一個button,不做詳解

列印結果為:

ok。 讀取系統簡訊就算是簡單的完畢了。

接著我們往系統中寫一條簡訊

我們再加一個插入簡訊的button。然後當按下時就插入一條簡訊:

代碼例如以下:

writeMessage.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// 寫簡訊button被按下ContentResolver cResolver = getContentResolver();ContentValues values = new ContentValues();values.put("body", "對不起。您因為尾號為6789的手機號。欠費1w元,已停機!

");values.put("address", 10086);values.put("date", System.currentTimeMillis());values.put("type", 1);cResolver.insert(Uri.parse("content://sms"), values);}});


結果例如以下:

能夠看到資料庫中已經有信插入的資訊,同一時候對話方塊中也出現了。 所以插入簡訊就搞定了。



Android 四大組件學習之ContentProvider三

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.