如何在Xamarin中列出所有收件箱短信,

mlnl4t2r  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(207)

我希望在按下按钮时在电话中显示所有短消息要显示信息是电话号码和消息内容
我已经有方法来接收短信时,有人发送给我(应用程序运行或后台),但没有解决方案,立即获得所有短信.(Xamarin.Forms)
我尝试下面的代码,但是在ContentResolver.Query(uri,reqCols,null,null,null)中得到错误;=〉CS 0120:非静态字段、方法或属性'member'需要对象引用

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, 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());

        }
    }
cxfofazt

cxfofazt1#

public List<string> GetAllSms()
    {
        var list = new List<string>();
        Android.Content.Context context = Android.App.Application.Context;
        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 = context.ContentResolver.Query(uri, reqCols, null, 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]));

                list.Add(address);

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

            } while (cursor.MoveToNext());

        }

        return list;
    }

相关问题