解決したいこと
作成中のアプリはシンプルで、Kotlinを使ってボタンが押されたらメッセージをSMSに送信する機能です。
Kotlinを使ってAndroidでSMS送信時に、getSystemServiceがNULLになりどうしてもうまくいきません。
Android OS 11の環境で実行しています。
以下のサイトを参考にしました。
発生している問題・エラー
getSystemService(…) must not be null
Build.VERSION.SDK_INT>=23の部分を通っていることは確認しました。
smsManager = this.getSystemService(SmsManager::class.java) の部分でエラーになります。
該当するソースコード
■マニフェスト > AndroidManifest.xml に、以下の権限を追加しました。
■MainActivity.ktファイル ※numberの部分には実際の番号をいれてテストしています。
//@Composable
fun onClickMailButton(view:View) {
val number = "080????????" // 送信先電話番号
try {
val smsManager:SmsManager
if (Build.VERSION.SDK_INT>=23) {
//if SDK is greater that or equal to 23 then
//this is how we will initialize the SmsManager
smsManager = this.getSystemService(SmsManager::class.java)
}
else{
//if user's SDK is less than 23 then
//SmsManager will be initialized like this
smsManager = SmsManager.getDefault()
}
smsManager.sendTextMessage(number, null, "メッセージ", null, null)
// on below line we are displaying a toast message for message send,
Toast.makeText(applicationContext, "Message Sent", Toast.LENGTH_LONG).show()
} catch (e: Exception) {
// on catch block we are displaying toast message for error.
Toast.makeText(applicationContext, "Please enter all the data.."+e.message.toString(), Toast.LENGTH_LONG)
.show()
}
}
ご教授いただければ幸いです。
宜しくお願い致します。