保存已发送的短信

时间:2013-08-23 06:20:51

标签: c# sms xamarin.android

我可以使用

发送短信
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 附注:我的手机没有root 权限 我该怎么办?

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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" />

答案 2 :(得分:0)

为什么我有编译错误&#34;名称&#39; getContentResolver&#39;在当前背景下不存在&#34;对于在MainActivity类中实现的方法中的 getContentResolver.Insert(...):Activity?