import
android.content.Context;
import
android.content.pm.PackageManager;
import
android.graphics.Color;
import
android.graphics.drawable.ColorDrawable;
import
android.os.Build;
import
android.os.Bundle;
import
android.telephony.TelephonyManager;
import
android.view.View;
import
android.widget.TextView;
import
androidx.annotation.RequiresApi;
import
androidx.appcompat.app.ActionBar;
import
androidx.appcompat.app.AppCompatActivity;
import
androidx.core.app.ActivityCompat;
import
static
android.Manifest.permission.READ_PHONE_NUMBERS;
import
static
android.Manifest.permission.READ_PHONE_STATE;
import
static
android.Manifest.permission.READ_SMS;
public
class
MainActivity
extends
AppCompatActivity {
TextView phone_number;
@RequiresApi
(api = Build.VERSION_CODES.M)
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionbar = getSupportActionBar();
actionbar.setBackgroundDrawable(
new
ColorDrawable(Color.parseColor(
"#11FF01"
)));
phone_number = findViewById(R.id.phone_number);
}
public
void
GetNumber(View v) {
if
(ActivityCompat.checkSelfPermission(
this
, READ_SMS) == PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(
this
, READ_PHONE_NUMBERS) ==
PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
this
,
READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
TelephonyManager telephonyManager = (TelephonyManager)
this
.getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber = telephonyManager.getLine1Number();
phone_number.setText(phoneNumber);
return
;
}
else
{
requestPermission();
}
}
private
void
requestPermission() {
if
(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(
new
String[]{READ_SMS, READ_PHONE_NUMBERS, READ_PHONE_STATE},
100
);
}
}
public
void
onRequestPermissionsResult(
int
requestCode, String permissions[],
int
[] grantResults) {
switch
(requestCode) {
case
100
:
TelephonyManager telephonyManager = (TelephonyManager)
this
.getSystemService(Context.TELEPHONY_SERVICE);
if
(ActivityCompat.checkSelfPermission(
this
, READ_SMS) !=
PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
this
,
READ_PHONE_NUMBERS) != PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(
this
, READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
return
;
}
String phoneNumber = telephonyManager.getLine1Number();
phone_number.setText(phoneNumber);
break
;
default
:
throw
new
IllegalStateException(
"Unexpected value: "
+ requestCode);
}
}
}