Manifest.xml
<uses-permission android:name="android.permission.READ_PHONE_STATE" android:maxSdkVersion="29" />
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
Layout xml file:
<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
xmlns:tools = "http://schemas.android.com/tools"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:orientation="vertical">
<TextView
android:id = "@+id/phoneNumber"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "phone number"
android:layout_marginTop="@dimen/padding_40dp"/>
</LinearLayout>
Fragment:
package com.example.questionpaper.Screens.mytest;
import android.Manifest;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment;
import com.example.questionpaper.Activity.ContainerActivity;
import com.example.questionpaper.Common.Utility;
import com.example.questionpaper.R;
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 NotificationsScreenFragment extends Fragment {
private ProgressDialog pDialog;
private ContainerActivity activity;
TextView phoneNumber;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v=inflater.inflate(R.layout.notifications_screen_fragment,container,false);
this.activity=(ContainerActivity) getActivity();
pDialog= Utility.getProgressDialog(getActivity());
initViews(v);
return v;
}
private void initViews(View v) {
phoneNumber= v.findViewById(R.id.phoneNumber);
if (ActivityCompat.checkSelfPermission(getContext(), READ_SMS) == PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(getContext(), READ_PHONE_NUMBERS) ==
PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getContext(),
READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
TelephonyManager tMgr = (TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();
phoneNumber.setText(mPhoneNumber);
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 tMgr = (TelephonyManager) getContext().getSystemService(Context.TELEPHONY_SERVICE);
if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.READ_SMS) !=
PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getContext(),
Manifest.permission.READ_PHONE_NUMBERS) != PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
return;
}
String mPhoneNumber = tMgr.getLine1Number();
phoneNumber.setText(mPhoneNumber);
break;
}
}
}
No comments:
Post a Comment