0
當我在我的Android模擬器發送短信,它關係到內容提供商:如何查詢來自內容提供商的上次發送的短信?
content://sms/sent
吧?
所以我想從內容提供商那裏得到最後發送的短信。所以我使用了這個Uri,就像你上面看到的那樣,我使用了方法查詢和內容解析器對象。我得到了光標,並使用了movetofirst()方法,所以我會得到最後發送的短信。檢查下面的代碼。
package com.sys;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.net.Uri;
import android.database.Cursor;
public class SMS extends Activity {
Button btnVerSms;
EditText txtFinal;
final Uri CONTENT_URI = Uri.parse("content://sms/sent");
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnVerSms= (Button)findViewById(R.id.btnVerSms);
txtFinal = (EditText)findViewById(R.id.txtFinal);
btnVerSms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Cursor cursor = getContentResolver().query(CONTENT_URI, null, null, null, null);
String body = null;
if(cursor.moveToFirst()){
body = cursor.getString(cursor.getColumnIndexOrThrow("body")).toString();
}
txtFinal.setText(body);
}
});
}
}
那麼什麼樣的內容,存在於所有的設備和所使用的是建議我用所有SMS客戶端應用程序,因爲這一次我提到是不是框架的一部分提供。我應該將哪個URI傳遞給query()方法? – rogcg 2010-07-23 01:25:11
@psyhclo:沒有「內容提供者存在於所有設備中,並且被所有的SMS客戶端應用程序使用」,而不是爲桌面編寫的每個電子郵件應用程序都使用Outlook API。每個電子郵件應用程序(如果它具有一個API)都有其自己的API。同樣,每個SMS客戶端應用程序(如果它具有一個API)都有其自己的API。 – CommonsWare 2010-07-23 01:53:42
那麼,我打算做什麼?如果我按照這樣的方式放棄,我的應用程序將面臨嚴重問題。對?我該怎麼辦? – rogcg 2010-07-23 01:57:04