如何获取 Xamarin.Android 中的所有短信
How to get all SMS in 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, 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);
我正在 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, 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);