【发布时间】:2022-11-04 09:15:04
【问题描述】:
我想在按下按钮时显示电话中的所有短信。要显示的信息是电话号码和内容消息。
当有人向我发送短信(应用程序运行或后台)时,我已经有了接收短信的方法,但没有立即获取所有短信的解决方案。 (Xamarin.Forms)
我尝试下面的代码,但在 ContentResolver.Query(uri, reqCols, null, null, null); 中出现错误 => CS0120:非静态字段、方法或属性“成员”需要对象引用
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());
}
}
【问题讨论】:
-
你不能在 iOS 中做到这一点
-
先试试安卓
-
关于如何在 Android 上执行此操作存在许多现有问题:google.com/search?q=android+list+sms+site:stackoverflow.com
-
但是有Xamarin.Android。我已经尝试在 Xamarin.Forms 中不起作用
-
我不会为你编写代码。我只是给了你一个链接到如何做到这一点的几十个例子。如果您在实现它时遇到问题,请发布您编写的代码并描述您遇到的具体问题。
标签: xamarin xamarin.forms