我的最终目标是创建一个应用程序,将文本消息发送到用户输入的电话号码数据库。然后,通过按下按钮,他们可以自动响应他们正在驾驶的所有人,并希望他们再次给他们发短信。自动消息响应也是可自定义的。我在视觉工作室使用Xamarin,并且正在努力制作文本。
using Android.App;
using Android.Widget;
using Android.OS;
using System;
using Android.Telephony;
namespace DrivePhone_GeniusHourProject
{
[Activity(Label = "Drive Time!", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
EditText SMS = FindViewById<EditText>(Resource.Id.SMS_Message);
Button sendSMS = FindViewById<Button>(Resource.Id.Send_SMS);
string SMS_Text = SMS.ToString();
var smsTo = NSUrl.FromString();
SmsMessage();
smsTo = "815376377";
sendSMS.Click += (object sender, EventArgs e) =>
{
}
}
}
}
答案 0 :(得分:1)
我的问题是我会做SmsManager。然后没有发送文本的选项。但在开发者网站上有一个名为sendTextMessage()的公共方法;但我无法在Visual Studio中使用它。
在Xamarin中,它是Android.Telephony.Gsm.SmsManager.SendTextMessage Method。
例如:
sendSMS.Click += (object sender, EventArgs e) =>
{
var content = "**HERE GOES SMS CONTENT**";
var destinationAdd = "**HERE GOES DESTINATION PHONE NUMBER**";
Android.Telephony.Gsm.SmsManager sm = SmsManager.Default;
sm.SendTextMessage(destinationAdd, null, content, null, null);
}
不要忘记在清单中添加权限:
<uses-permission android:name="android.permission.SEND_SMS" />
如果您想接收短信,还需要以下许可:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
答案 1 :(得分:1)
有关更好的方式发送消息安装xam.plugin.Messaging(https://www.nuget.org/packages/Xam.Plugins.Messaging/)
然后使用以下代码发送消息
var smsMessenger = CrossMessaging.Current.SmsMessenger; if(smsMessenger.CanSendSms) smsMessenger.SendSms(&#34; + 1234567890&#34;,&#34;你好,从Xam.Messaging.Plugin&#34;);
另外请将android.permission.SEND_SMS权限添加到Android清单文件
有关详情,请浏览https://github.com/cjlotz/Xamarin.Plugins/blob/master/Messaging/Details.md