<?xml version="1.0" encoding="utf-8"?> | |
<!-- Directory : [Project]/Assets/Plugins/Android/AndroidManifest.xml --> | |
<!-- Configure according to your android application information. --> | |
<manifest | |
xmlns:android="http://schemas.android.com/apk/res/android" | |
package="com.unity3d.player" | |
android:installLocation="preferExternal" | |
android:versionCode="1" | |
android:versionName="1.0"> | |
<supports-screens | |
android:smallScreens="true" | |
android:normalScreens="true" | |
android:largeScreens="true" | |
android:xlargeScreens="true" | |
android:anyDensity="true"/> | |
<!-- REQUIRED permission --> | |
<uses-permission android:name="android.permission.SEND_SMS" /> | |
<!-- Additional --> | |
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | |
<uses-permission android:name="android.permission.STORAGE" /> | |
<uses-permission android:name="android.permission.INTERNET" /> | |
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | |
<uses-permission android:name="android.permission.SMS_RECEIVED" /> | |
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> | |
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> | |
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> | |
<application | |
android:theme="@style/UnityThemeSelector" | |
android:icon="@drawable/app_icon" | |
android:label="@string/app_name" | |
android:debuggable="true"> | |
<activity android:name="com.unity3d.player.UnityPlayerActivity" | |
android:label="@string/app_name"> | |
<intent-filter> | |
<action android:name="android.intent.action.MAIN" /> | |
<category android:name="android.intent.category.LAUNCHER" /> | |
</intent-filter> | |
<meta-data android:name="unityplayer.UnityActivity" android:value="true" /> | |
</activity> | |
</application> | |
</manifest> |
using UnityEngine; | |
public class SendSMS : MonoBehaviour | |
{ | |
AndroidJavaObject currentActivity; | |
public void Send(string phone) | |
{ | |
if (Application.platform == RuntimePlatform.Android) | |
{ | |
RunAndroidUiThread(); | |
} | |
} | |
void RunAndroidUiThread() | |
{ | |
AndroidJavaClass UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); | |
currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity"); | |
currentActivity.Call("runOnUiThread", new AndroidJavaRunnable(SendProcess)); | |
} | |
void SendProcess() | |
{ | |
Debug.Log("Running on UI thread"); | |
AndroidJavaObject context = currentActivity.Call<AndroidJavaObject>("getApplicationContext"); | |
// SMS Information | |
string phone = "08888888888"; | |
string text = "Hello World. This SMS is sent using Android SMS Manager."; | |
string alert; | |
try | |
{ | |
// SMS Manager | |
AndroidJavaClass SMSManagerClass = new AndroidJavaClass("android.telephony.SmsManager"); | |
AndroidJavaObject SMSManagerObject = SMSManagerClass.CallStatic<AndroidJavaObject>("getDefault"); | |
SMSManagerObject.Call("sendTextMessage", phone, null, text, null, null); | |
alert = "Message sent successfully."; | |
} | |
catch (System.Exception e) | |
{ | |
Debug.Log("Error : " + e.StackTrace.ToString()); | |
alert = "Error has been Occurred. Fail to send message."; | |
} | |
// Show Toast | |
AndroidJavaClass Toast = new AndroidJavaClass("android.widget.Toast"); | |
AndroidJavaObject javaString = new AndroidJavaObject("java.lang.String", alert); | |
AndroidJavaObject toast = Toast.CallStatic<AndroidJavaObject>("makeText", context, javaString, Toast.GetStatic<int>("LENGTH_SHORT")); | |
toast.Call("show"); | |
} | |
} |
This comment has been minimized.
This comment has been minimized.
Can i use sms manager to receive massages? |
This comment has been minimized.
This comment has been minimized.
Oh wow, after I figured out how to implement this, it worked amazingly! My friend is probably annoyed with all the "test" messages, but it works, so I dont care : P - awesome work on putting all this together in a simple and easy-to-implement way! |
This comment has been minimized.
This comment has been minimized.
help, i do not understand how to implement it, i always have the error "Error has been Occurred. Fail to send message" |
This comment has been minimized.
This comment has been minimized.
I am trying to implement automatic OTP reader in UNITY for android . Received OPT should be read automatically without viewing it. |
This comment has been minimized.
This comment has been minimized.
Very good, it worked like a charm. now please, please I need to be able to read incomming sms in Unity for my android app. It is so that partially sighted people get the text reading as I have implimented it with TTS, STT, calling contact and with this sending SMS. I just need to be able to read out the sms now. This needs to be achivable in Unity. |
This comment has been minimized.
This comment has been minimized.
Just get an Android error "Error has been Occurred. Fail to send message". |
This comment has been minimized.
This comment has been minimized.
I have the same error as VicToMeyeZR. |
This comment has been minimized.
This comment has been minimized.
I found it!
|
This comment has been minimized.
This comment has been minimized.
Doesn't work for me, can you give me a example? y put the number, and send() at boton fuction, but nothing happend. |
This comment has been minimized.
This comment has been minimized.
Hi. Thanks for making this, I keep getting one error though. My game always exits after the message is sent. Could there be something I am doing wrong? |
This comment has been minimized.
This comment has been minimized.
Works fine on Unity 2017.4.27f1 (64-bit), but crashed on unity 2019.2.11f1 |
This comment has been minimized.
This comment has been minimized.
Same here |
This comment has been minimized.
This comment has been minimized.
Check your xml path |
This comment has been minimized.
This comment has been minimized.
hola |
This comment has been minimized.
This comment has been minimized.
Hey im trying to implement this code but it wont work, could it be that this is impossible in newer android versions? |
This comment has been minimized.
This comment has been minimized.
@Cunibon I'm sorry to say that I don't know, android often updating their spec and API on the newer version, especially permission issue.. I haven't touched Unity and Android in the last couple of years, I'll check and let let you know if I have the time |
This comment has been minimized.
This comment has been minimized.
@rmdwirizki that would be great. I've been trying to get an answer on reddit or stackoverflow for months now didnt expect to actually get an answer here |
This comment has been minimized.
This works and this is awesome! thank you.