3

我知道关于这个问题有很多类似的、较旧的问题,但我没有找到我需要的东西。

发送

我希望能够使用 Android 的SmsManager.sendMultimediaMessage功能发送彩信。更具体地说,我想提供一个电话号码,以及一串文本或图像的 URI,然后发送消息,然后将结果作为PendingIntent.

我可能已经看过十几个关于这个的问题,但没有运气。

例如,以下是我实现 SMS 版本的方法。请注意该方法如何将消息存储在数据库中,然后对其进行扫描并返回 ID。

public int sendSms(String number, String text);
    ContentValues values = new ContentValues();
    long threadId = getOrCreateThreadId(getApplicationContext(), number);
    values.put(Telephony.Sms.ADDRESS, number);
    values.put(Telephony.Sms.DATE, System.currentTimeMillis());
    values.put(Telephony.Sms.DATE_SENT, System.currentTimeMillis());
    values.put(Telephony.Sms.READ, 1);
    values.put(Telephony.Sms.TYPE, Telephony.Sms.MESSAGE_TYPE_OUTBOX);
    values.put(Telephony.Sms.THREAD_ID, threadId);
    values.put(Telephony.Sms.BODY, text);
    getContentResolver().insert(Telephony.Sms.Inbox.CONTENT_URI, values);
    Cursor c = getContentResolver().query(Telephony.Sms.CONTENT_URI, null, null, null, "_id desc");
    int id = -1;
    if (c.moveToFirst())
        id = c.getInt(c.getColumnIndexOrThrow(BaseColumns._ID));
    c.close();
    Log.i("MessagingService", "Sending message: " + text);
    ArrayList<String> parts = SmsManager.getDefault().divideMessage(text);
    ArrayList<PendingIntent> pendingIntents = new ArrayList<>();
    for (String i : parts) {
        Intent intent;
        if (id != -1) {
            intent = new Intent(MainActivity.MSG_STATUS_CHANGE);
            intent.putExtra("id", id);
        } else {
            intent = new Intent(MainActivity.RUN_CODE);
            intent.putExtra("type", "reload-thread");
            intent.putExtra("content", String.valueOf(threadId));
        }
        pendingIntents.add(PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
    }
    StatusChangeReceiver.pendingPartCounts.put(id, parts.size());
    SmsManager.getDefault().sendMultipartTextMessage(number, null, parts, pendingIntents, null);
    return id;
}

我想使用sendMultimediaMessage. 请注意,我的目标是 Android 5.0(API 级别 21),但getOrCreateThreadId为了兼容性,我有一个自定义实现。

阅读

另外,阅读彩信是否类似于阅读短信?如果没有,我将如何去做?

4

0 回答 0