尝试将SMS插入收件箱,什么也没发生[已解决!]

时间:2019-06-02 22:12:03

标签: java android sms smsmanager

我正在尝试从备份中插入SMS,但是当我运行代码时,在短信应用程序或收件箱中没有任何错误或错误,也没有短信。

还尝试添加日期,读取状态等,但无效

具有读取和写入短信权限。 minSDK:23

代码如下:

public void addSms(String number , String body){

    ContentValues values = new ContentValues();
    values.put("address", number);
    values.put("body", body);
    getContentResolver().insert(Uri.parse("content://sms/inbox"),values);

}

并从以下位置调用addSms:

for (int i = 0; i < smssJson2.length(); i++) {
            try {
                JSONObject obj = smssJson2.getJSONObject(i);
                String body = obj.getString("message");
                String number = obj.getString("number");
                addSms(number,body);
            } catch (Exception e) {
                e.getLocalizedMessage();
            }
        }

使用以下代码检查收件箱(此代码有效):

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

    while (cur != null && cur.moveToNext()) {
        String address = cur.getString(cur.getColumnIndex("address"));
        String body = cur.getString(cur.getColumnIndexOrThrow("body"));

        JSONObject obj = new JSONObject();
        try {
            obj.put("number",address);
            obj.put("message",body);
            Log.d("SMS",obj.toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    cur.close();

2 个答案:

答案 0 :(得分:0)

解决了!

如果应用的Android版本为4.4(KitKat)或更高版本,则必须将其设为默认短信应用,才能向SmsProvider添加短信或发送或接收短信和彩信。

,对于备份/还原应用,您应遵循以下步骤:

1-将您的应用更改为默认消息传递应用。

2-插入短信

3-用以前的一个更改默认消息传递应用程序。

资源和更多信息,HERE!

答案 1 :(得分:0)

是的,只有将应用程序标记为默认SMS应用程序后,它才有可能,并且还需要实现本条款中提到的所有默认处理程序类。