微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Xamarin.Android 中获取所有短信

如何解决如何在 Xamarin.Android 中获取所有短信

我正在 Xamarin Forms 上开发应用程序。我需要从设备获取所有消息,这可能吗?如何?

解决方法

这是一个简单的示例,您可以在设备中获取短信。

string[] items;
public void getAllSms()
    {

        string INBOX = "content://sms/inbox";
        string[] reqCols = new string[] { "_id","thread_id","address","person","date","body","type" };
        Android.Net.Uri uri = Android.Net.Uri.Parse(INBOX);
        var cursor = ContentResolver.Query(uri,reqCols,null,null);

        if (cursor.MoveToFirst())
        {
            do
            {
                String messageId = cursor.GetString(cursor.GetColumnIndex(reqCols[0]));
                String threadId = cursor.GetString(cursor.GetColumnIndex(reqCols[1]));
                String address = cursor.GetString(cursor.GetColumnIndex(reqCols[2]));
                String name = cursor.GetString(cursor.GetColumnIndex(reqCols[3]));
                String date = cursor.GetString(cursor.GetColumnIndex(reqCols[4]));
                String msg = cursor.GetString(cursor.GetColumnIndex(reqCols[5]));
                String type = cursor.GetString(cursor.GetColumnIndex(reqCols[6]));

                items = new string[] {
       ((messageId + (","
                        + (threadId + (","
                        + (address + (","
                        + (name + (","
                        + (date + (","
                        + (msg + ("," + type))))))))))))) };

            } while (cursor.MoveToNext());

        }
    }

如果您的设备android版本高于5,您需要rquest运行时权限。

RequestPermissions(new string[] { Manifest.Permission.ReadSms },0);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。