11package com.httpsms
22
33import android.Manifest
4+ import android.Manifest.permission.READ_PHONE_NUMBERS
45import android.annotation.SuppressLint
56import android.content.Context
7+ import android.content.Intent
68import android.content.pm.PackageManager
9+ import android.icu.lang.UCharacter.GraphemeClusterBreak.T
10+ import android.nfc.Tag
711import android.os.Bundle
812import android.telephony.PhoneNumberUtils
913import android.telephony.TelephonyManager
@@ -20,20 +24,52 @@ import java.util.*
2024
2125
2226class MainActivity : AppCompatActivity () {
23- private val logTag = MainActivity ::class .simpleName ? : " MainActivity"
27+ companion object {
28+ private val TAG = MyFirebaseMessagingService ::class .simpleName
29+ }
2430
2531 override fun onCreate (savedInstanceState : Bundle ? ) {
2632 super .onCreate(savedInstanceState)
2733 setContentView(R .layout.activity_main)
2834
35+ val intent = Intent (" testing" )
36+ intent.putExtra(Constants .KEY_MESSAGE_ID , " 123" )
37+
38+ Log .w(TAG , " message id = [${intent.getStringExtra(Constants .KEY_MESSAGE_ID )} ]" )
39+
2940 val phoneNumber = getPhoneNumber(this )
3041
3142 val titleText = findViewById<TextView >(R .id.cardPhoneNumber)
3243 titleText.text = PhoneNumberUtils .formatNumber(phoneNumber, Locale .getDefault().country)
44+
45+ requestPermission(this , Manifest .permission.SEND_SMS )
46+ requestPermission(this , Manifest .permission.RECEIVE_SMS )
47+ requestPermission(this , Manifest .permission.READ_PHONE_NUMBERS )
48+ requestPermission(this , Manifest .permission.READ_PHONE_STATE )
49+ requestPermission(this , Manifest .permission.RECEIVE_SMS )
50+
3351 }
3452
3553 @SuppressLint(" HardwareIds" )
3654 private fun getPhoneNumber (context : Context ): String {
55+ val telephonyManager = this .getSystemService(Context .TELEPHONY_SERVICE ) as TelephonyManager
56+ if (ActivityCompat .checkSelfPermission(
57+ this ,
58+ Manifest .permission.READ_SMS
59+ ) != PackageManager .PERMISSION_GRANTED && ActivityCompat .checkSelfPermission(
60+ this ,
61+ READ_PHONE_NUMBERS
62+ ) != PackageManager .PERMISSION_GRANTED && ActivityCompat .checkSelfPermission(
63+ this ,
64+ Manifest .permission.READ_PHONE_STATE
65+ ) != PackageManager .PERMISSION_GRANTED
66+ ) {
67+ return " NO_PHONE_NUMBER" ;
68+ }
69+ return telephonyManager.line1Number ? : " NO_PHONE_NUMBER"
70+ }
71+
72+ private fun requestPermission (context : Context , permission : String ) {
3773 // Register the permissions callback, which handles the user's response to the
3874 // system permissions dialog. Save the return value, an instance of
3975 // ActivityResultLauncher. You can use either a val, as shown in this snippet,
@@ -50,39 +86,10 @@ class MainActivity : AppCompatActivity() {
5086 toast.show()
5187 }
5288 }
53-
54- val telephonyManager = this .getSystemService(Context .TELEPHONY_SERVICE ) as TelephonyManager
55- if (ActivityCompat .checkSelfPermission(
56- this ,
57- Manifest .permission.READ_SMS
58- ) != PackageManager .PERMISSION_GRANTED && ActivityCompat .checkSelfPermission(
59- this ,
60- Manifest .permission.READ_PHONE_NUMBERS
61- ) != PackageManager .PERMISSION_GRANTED && ActivityCompat .checkSelfPermission(
62- this ,
63- Manifest .permission.READ_PHONE_STATE
64- ) != PackageManager .PERMISSION_GRANTED && ActivityCompat .checkSelfPermission(
65- this ,
66- Manifest .permission.SEND_SMS
67- ) != PackageManager .PERMISSION_GRANTED
68- && ActivityCompat .checkSelfPermission(
69- this ,
70- Manifest .permission.RECEIVE_SMS
71- ) != PackageManager .PERMISSION_GRANTED
72- ) {
89+ if (ActivityCompat .checkSelfPermission(context, permission) != PackageManager .PERMISSION_GRANTED ) {
7390 // You can directly ask for the permission.
7491 // The registered ActivityResultCallback gets the result of this request.
75- requestPermissionLauncher.launch(Manifest .permission.READ_SMS )
76- requestPermissionLauncher.launch(Manifest .permission.READ_PHONE_NUMBERS )
77- requestPermissionLauncher.launch(Manifest .permission.READ_PHONE_STATE )
78- requestPermissionLauncher.launch(Manifest .permission.SEND_SMS )
79- requestPermissionLauncher.launch(Manifest .permission.RECEIVE_SMS )
80-
92+ requestPermissionLauncher.launch(permission)
8193 }
82-
83- val phoneNumber = telephonyManager.line1Number ? : " NO_PHONE_NUMBER"
84- Log .d(logTag, phoneNumber)
85- return phoneNumber
8694 }
87-
8895}
0 commit comments