Вставить предопределенное сообщение в существующую беседу (Android)

Есть ли способ вставить предопределенное сообщение в существующую беседу в папке «Входящие» из приложения, созданного на платформе Android?

С помощью этого кода я могу получить последние отправленные и полученные сообщения.

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);

Uri uriSMS = Uri.parse("content://sms/");
Cursor cur = getContentResolver().query(uriSMS, null, null, null, null);
cur.moveToNext();

String body = cur.getString(cur.getColumnIndex("body"));   
String add = cur.getString(cur.getColumnIndex("address"));
String time = cur.getString(cur.getColumnIndex("date"));
String protocol = cur.getString(cur.getColumnIndex("protocol"));       

String contactName = "";
Uri personUri = Uri.withAppendedPath( ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(add));  
Cursor c = getContentResolver().query(personUri, new String[] { PhoneLookup.DISPLAY_NAME }, null, null, null );  
if( c.moveToFirst() ) {  
             int nameIndex = c.getColumnIndex(PhoneLookup.DISPLAY_NAME);  
             contactName = c.getString(nameIndex);
}
c.close();
cur.close();

String out = "";
Date d = new Date(Long.valueOf(time)); 

if (protocol == null)
    out = "Sending to: "+ contactName + " <"+add +">\nDate: "+d +"\nBody: "+body+"\n\n";
else 
    out = "Received from: "+ contactName + " <"+add +">\nDate: "+d +"\nBody: "+body+"\n\n";

tv.setText(out);
setContentView(tv);

}

Есть ли способ включить это в свой широковещательный приемник (SmsReceiver.java)? Надеюсь, есть способ инициировать событие, чтобы при получении нового сообщения я мог вставить предопределенное сообщение в беседу, связанную с самым новым текстовым сообщением в папке «Входящие».

Пока я этим занимаюсь. Есть ли способ точно получить собственный номер телефона, не прося пользователя ввести его вручную?


person localhost    schedule 27.06.2012    source источник


Ответы (1)


Решено с помощью следующего кода в моем приемнике.

ContentValues values = new ContentValues();
 values.put("address", "0123456789");
 values.put("body", "Message goes here");
  context.getContentResolver().insert(Uri.parse("content://sms/"), values);
person localhost    schedule 28.06.2012