保存发送的短信

本文关键字:保存 | 更新日期: 2023-09-27 18:28:47

我可以使用发送短信

var smsMgr = Android.Telephony.SmsManager.Default; 
smsMgr.SendTextMessage(num, null, txt, null, null);

但此消息未显示在已发送短信列表中
所以我尝试了

var values = new ContentValues(); 
values.Put("address", num); 
values.Put("body", txt); 
try 
{ 
  ContentResolver.Insert(Android.Net.Uri.Parse("content://sms/sent"), values); 
} 
catch (Exception ex) 
{
  Console.WriteLine(ex.Message);
}

在我的代码中有

[assembly: UsesPermission(Name = "android.permission.SEND_SMS")]
[assembly: UsesPermission(Name = "android.permission.WRITE_SMS")]

但每次我得到SecurityException
附带说明:我的手机没有根权限
我能做什么?

保存发送的短信

最后我发现了如何让短信出现在发送标签上:我需要

[assembly: UsesPermission(Name = "android.permission.READ_SMS")]

我不知道这是不是每个手机或安卓版本的要求,但添加该权限后一切正常!!

private void addSENTSMS(String address, String message) {
        try {
            ContentValues values = new ContentValues();
            values.put("address", address);
            values.put("body", message);
            getContentResolver()
                    .insert(Uri.parse("content://sms/sent"), values);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

还要确保您使用以下权限:

<uses-permission android:name="android.permission.WRITE_SMS" />

为什么在类MainActivity:Activity中实现的方法中插入(…)getContentResolver'名称在当前上下文中不存在?