In this tutorial you will learn how to make an Android app that can send SMS messages. Firstly, we will create a button that can send a pre-determined message to a pre-determined number. We will then extend the app by adding text fields where the user can enter a number and their message.
This is what the app will look like at the end of this tutorial…
To get started, open Xamarin and click File > New and select Android App from the list of templates. We will be writing this app in the C# language.
Give your app a name. In this example, the app is called SMSApp and Modern Development has been selected as the Target Platform.
Confirm the project and solution name as well as the folder the project will be stored in. Then click on Create.
Open the Main.axml file in the Resources > Layout folder and delete the ‘Hello world, click me!’ button.
Drag a new Button element from the Toolbox on to the screen. Rename its Id to @+id/sendButton and change the Text value to Send SMS.
Now open the MainActivity.cs file to add the code. Delete the code that is highlighted below.
Click on the Project menu and then select the Project Options (it will be the name of your app project – here it is called SMSApp Options).
Select Android Application from the list and then in the Required Permissions list, check the SendSms option and click on OK. This will allow the app to send SMS messages.
Add the using Android.Telephony; line to the top section of the code.
Define the sendButton as a Button element in your code.
Add the following highlighted line of code to the OnCreate method so that you can access the button element from the screen.
Now create a button click event. Type in sendButton.Click+= then press the spacebar. Double-click the option to create the SendButton_Click method.
Inside the SendButton_Click method, add the following highlighted code.
There are two values that you need to change. The phone number (shown as 0123456789 above) needs to be changed and also the SMS message contents (shown as Hello world above). Change these values as you like. You can also get values from existing variables here or from user input in text fields. Now go and test your app on a phone with a working SIM card.
Adding user input
Now we will allow the user to enter in a number and a message to send. We will need to add a couple of text labels and text fields to the screen.
Open the Main.axml file. Add two Text (Medium) elements and two Plain Text elements as shown below. The Text (Medium) elements should ask the user to enter a number and enter a message.
Rename the first Plain Text element (under Enter a number) to @+id/numberEditText. Rename the second Plain Text element (under Enter a message) to @+id/messageEditText.
Go back to the MainActivity.cs code. Modify the code by adding the highlighted lines of code shown below. You firstly need to define the EditText elements in the MainActivity class (lines 11-12) and then allow the code to access these elements from the screen (lines 22-23). Then you need to modify the SendButton_Click method so that the text entered by the user (the phone number and the desired message) are saved in string variables (lines 31-32). These variables are then used in line 33.
That’s it! Now go and test your completed app.