В настоящее время я регистрирую наблюдателя контента на следующем URI «content: // sms /», чтобы прослушивать входящие и исходящие сообщения.Android - запрос SMS ContentProvider?
Это, кажется, работает хорошо, и я также пытался удалить из базы данных смс, но я могу только удалить всю нить из следующего URI «содержания: // смс/разговоры /»
Вот код, который я использовать для этого
String url = "content://sms/";
Uri uri = Uri.parse(url);
getContentResolver().registerContentObserver(uri, true, new MyContentObserver(handler));
}
class MyContentObserver extends ContentObserver {
public MyContentObserver(Handler handler) {
super(handler);
}
@Override public boolean deliverSelfNotifications() {
return false;
}
@Override public void onChange(boolean arg0) {
super.onChange(arg0);
Log.v("SMS", "Notification on SMS observer");
Message msg = new Message();
msg.obj = "xxxxxxxxxx";
handler.sendMessage(msg);
Uri uriSMSURI = Uri.parse("content://sms/");
Cursor cur = getContentResolver().query(uriSMSURI, null, null,
null, null);
cur.moveToNext();
String protocol = cur.getString(cur.getColumnIndex("protocol"));
if(protocol == null){
Log.d("SMS", "SMS SEND");
int threadId = cur.getInt(cur.getColumnIndex("thread_id"));
Log.d("SMS", "SMS SEND ID = " + threadId);
Cursor c = getContentResolver().query(Uri.parse("content://sms/outbox/" + threadId), null, null,
null, null);
c.moveToNext();
int p = cur.getInt(cur.getColumnIndex("person"));
Log.d("SMS", "SMS SEND person= " + p);
//getContentResolver().delete(Uri.parse("content://sms/conversations/" + threadId), null, null);
}
else{
Log.d("SMS", "SMS RECIEVE");
int threadIdIn = cur.getInt(cur.getColumnIndex("thread_id"));
getContentResolver().delete(Uri.parse("content://sms/conversations/" + threadIdIn), null, null);
}
}
}
Однако я хочу, чтобы иметь возможность получить recipricant и текст сообщения из SMS Content Provider, может кто-нибудь сказать мне, как это сделать?
А также как удалить одно сообщение, а не весь поток?
Я проделал некоторый прогресс в этом в 1.5, но я запустил его на 1.6, и мой контент-наблюдатель перестает работать, в 1.5 его настроен для «content: // sms /», но разве это будет что-то другое для 1.6? –
Хорошая статья об Android-методах SMS-сообщений: http: //mobdev.olin.edu/mobdevwiki/FrontPage/Tutorials/SMS% 20Messaging –
Привет, Дональ, я видел ваш вопрос во время поиска решения моей проблемы. На самом деле я хочу знать о коде, который вы разместили перед объявлением класса. Эти коды принадлежат внешнему классу или что? Кстати, если вы решите свою проблему, тогда вы можете немного мне повести. Я использую Android 2.2, и моя проблема очень похожа на вашу. –