2

我可以使用发送短信

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权限
我能做些什么?

4

3 回答 3

2

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

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

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

于 2013-09-02T13:30:38.753 回答
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" />
于 2013-09-02T07:56:49.950 回答
0

为什么我在类 MainActivity:Activity 中实现的方法中的getContentResolver.Insert(...)出现编译错误“当前上下文中不存在名称‘getContentResolver’” ?

于 2014-11-05T15:47:39.793 回答