2015-05-15 2 views
-1

Я создаю Android-приложение, способное восстанавливать SMS-сообщения из webservice.Восстановить Sms: создать поток, если не существует

Вставляю SMS в существующие разговоры, и он отлично работает. Но если разговор не существует, смс восстанавливаются, но они не отображаются в приложении sms ...

Я думаю, что мне нужно создать новый поток (новый разговор).

ContentValues initialValues; 
initialValues = new ContentValues(); 
initialValues.put("_id", talk.getId()); 
initialValues.put("recipient_ids", talk.getContact().getId()); 
context.getContentResolver().insert(Uri.parse("content://mms-sms/conversations?simple=true"), initialValues); 

App падает с ошибкой:

MmsSmsProvider не поддерживает удаления, вставки или обновления для этого URI.content: // ммс-SMS/разговоры просто = истина

ответ

2

В этом примере вы получите threadId, он создаст новый идентификатор, если получатель не существует, иначе он вернет существующий threadId:

public static long getThreadId(Context context, String phoneNumber) { 
    Uri threadIdUri = Uri.parse("content://mms-sms/threadID"); 
    Uri.Builder uriBuilder = threadIdUri.buildUpon(); 
    uriBuilder.appendQueryParameter("recipient", phoneNumber); 
    Uri uri = uriBuilder.build(); 

    Cursor cursor = context.getContentResolver().query(uri, 
     new String[]{"_id"} /* projection */, 
     null /* selection */, 
     null /* selectionArgs */, 
     null /* order */); 
    if (cursor != null) { 
     try { 
      if (cursor.moveToFirst()) { 
       return cursor.getLong(0); 
      } 
     } finally { 
      cursor.close(); 
     } 
    } 
    return 0; 
} 
Смежные вопросы