एंड्रॉइड में फोन नंबर प्राप्त करना
यह ट्यूटोरियल दिखाता है कि रनटाइम अनुमतियों के साथ TelephonyManager का उपयोग करके डिवाइस का फोन नंबर कैसे प्राप्त किया जाए।
आवश्यक अनुमतियां
AndroidManifest.xml में जोड़ें:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
<!-- एंड्रॉइड 10+ के लिए -->
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"
tools:ignore="ProtectedPermissions" />
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनें।
चरण 2: लेआउट फ़ाइल (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tvPhoneNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="फोन नंबर लोड हो रहा है..."
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
चरण 3: MainActivity.java
package com.example.phonenumberdemo;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
public class MainActivity extends AppCompatActivity {
private static final int PERMISSION_REQUEST_CODE = 100;
private TextView tvPhoneNumber;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvPhoneNumber = findViewById(R.id.tvPhoneNumber);
checkPermissionsAndGetNumber();
}
private void checkPermissionsAndGetNumber() {
String[] permissions = {
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.READ_PHONE_NUMBERS
};
// अनुमतियां जांचें
boolean allGranted = true;
for (String permission : permissions) {
if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
allGranted = false;
break;
}
}
if (allGranted) {
getPhoneNumber();
} else {
ActivityCompat.requestPermissions(this, permissions, PERMISSION_REQUEST_CODE);
}
}
private void getPhoneNumber() {
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
String phoneNumber = telephonyManager.getLine1Number();
if (phoneNumber != null && !phoneNumber.isEmpty()) {
tvPhoneNumber.setText("फोन नंबर: " + phoneNumber);
} else {
tvPhoneNumber.setText("फोन नंबर उपलब्ध नहीं\n(सिम कार्ड नंबर संग्रहीत नहीं कर सकता)");
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSION_REQUEST_CODE) {
boolean allGranted = true;
for (int result : grantResults) {
if (result != PackageManager.PERMISSION_GRANTED) {
allGranted = false;
break;
}
}
if (allGranted) {
getPhoneNumber();
} else {
tvPhoneNumber.setText("अनुमति अस्वीकृत - फोन नंबर नहीं पढ़ सकते");
Toast.makeText(this, "फोन नंबर के लिए अनुमति आवश्यक है", Toast.LENGTH_LONG).show();
}
}
}
}
महत्वपूर्ण नोट्स
- सिम सीमा: कई कैरियर सिम कार्ड पर फोन नंबर संग्रहीत नहीं करते, इसलिए
getLine1Number()खाली लौट सकता है - एंड्रॉइड 10+: विशेषाधिकार प्राप्त फोन स्थिति अनुमति की आवश्यकता होती है
- गोपनीयता: संवेदनशील डेटा एक्सेस करने से पहले हमेशा अनुमति मांगें
- वैकल्पिक: उपयोगकर्ता इनपुट या SMS वेरिफिकेशन के लिए
SMS Retriever APIका उपयोग करें
ऐप चलाएं
ऐप अनुमति मांगेगा। अनुमति दें, और यह फोन नंबर प्रदर्शित करेगा या बताएगा कि यह उपलब्ध नहीं है।