Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में कॉल उठाना और काटना प्रोग्रामेटिकली कैसे करें?

Android में फोन कॉल स्टेट मॉनिटर करना (READ_PHONE_STATE)

ध्यान दें: Android सुरक्षा नीतियों के कारण, सामान्य ऐप्स प्रोग्रामेटिकली कॉल उठा या काट नहीं सकते। यह उदाहरण केवल कॉल स्टेट (रिंगिंग, ऑफहुक, आइडल) मॉनिटर करने का है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project।

चरण 2: लेआउट

res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Call State Monitor"
        android:textSize="24sp"
        android:textStyle="bold|italic" />

</RelativeLayout>

चरण 3: MainActivity.java - परमिशन रिक्वेस्ट

import android.Manifest;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private static final int PHONE_STATE_PERMISSION_CODE = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
                != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.READ_PHONE_STATE},
                    PHONE_STATE_PERMISSION_CODE);
        } else {
            // परमिशन पहले से है, टेलीफोनी मैनेजर से कॉल स्टेट मॉनिटर करें
            startCallMonitoring();
        }
    }

    private void startCallMonitoring() {
        // यहां TelephonyManager और PhoneStateListener से कॉल स्टेट सुनें
        Toast.makeText(this, "Monitoring call state...", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == PHONE_STATE_PERMISSION_CODE) {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                startCallMonitoring();
            } else {
                Toast.makeText(this, "Permission Denied - Cannot monitor calls", Toast.LENGTH_SHORT).show();
            }
        }
    }
}

चरण 4: BroadcastReceiver (कॉल स्टेट के लिए)

CallReceiver.java:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.widget.Toast;

public class CallReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        String number = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

        if (TelephonyManager.EXTRA_STATE_RINGING.equals(state)) {
            Toast.makeText(context, "Incoming call: " + number, Toast.LENGTH_SHORT).show();
        } else if (TelephonyManager.EXTRA_STATE_OFFHOOK.equals(state)) {
            Toast.makeText(context, "Call answered", Toast.LENGTH_SHORT).show();
        } else if (TelephonyManager.EXTRA_STATE_IDLE.equals(state)) {
            Toast.makeText(context, "Call ended", Toast.LENGTH_SHORT).show();
        }
    }
}

चरण 5: AndroidManifest.xml में रिसीवर रजिस्टर करें

<manifest ...>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_CALL_LOG" />

    <application ...>
        <receiver android:name=".CallReceiver">
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE" />
            </intent-filter>
        </receiver>
        <activity android:name=".MainActivity">...</activity>
    </application>
</manifest>
महत्वपूर्ण: Android 9+ में कॉल लॉग और फोन स्टेट परमिशन के लिए विशेष अप्रूवल चाहिए। सामान्य ऐप्स कॉल उठा/काट नहीं सकते - केवल डिफ़ॉल्ट डायलर ऐप ऐसा कर सकता है।

ऐप चलाएं

कॉल आने पर टोस्ट में नंबर और स्टेट दिखेगा।

Android में कॉल उठाना और काटना प्रोग्रामेटिकली कैसे करें? Android में कॉल उठाना और काटना प्रोग्रामेटिकली कैसे करें?
  1. Android पर फाइलें और ऐप्स सुरक्षित रूप से छिपाएं – चरण-दर-चरण मार्गदर्शिका Android पर फाइलें और ऐप्स सुरक्षित रूप से छिपाएं – चरण-दर-चरण मार्गदर्शिका

    स्मार्टफोन हमारे जीवन का अभिन्न अंग बन गए हैं। अगर हम अपने मोबाइल फोन को अपनी पहचान का विस्तार मानें तो गलत नहीं होगा। हमारे फोन पर हर तरह की जानकारी और डेटा सेव होता है। जिनमें से कुछ निजी और संवेदनशील होते हैं। यह विभिन्न खातों और ऐप्स तक पहुंचने का एक साधन भी है जो हमारी ऑनलाइन उपस्थिति को नियंत्

  1. एंड्रॉइड पर व्हाट्सएप कॉल्स को साइलेंट करें: स्टेप-बाय-स्टेप गाइड एंड्रॉइड पर व्हाट्सएप कॉल्स को साइलेंट करें: स्टेप-बाय-स्टेप गाइड

    आप कई व्हाट्सएप ग्रुप्स का हिस्सा हो सकते हैं, या आपको बहुत सारे व्हाट्सएप कॉल्स आते होंगे जो अप्रासंगिक हैं। हम समझते हैं कि जब आप किसी महत्वपूर्ण बिजनेस कॉल या मीटिंग के बीच में हों, तो रोजाना इतने सारे व्हाट्सएप कॉल्स से निपटना थका देने वाला हो सकता है। अगर आप अपने फोन को वाइब्रेट पर रखते हैं, त

  1. Android पर WhatsApp कॉल रिकॉर्ड करने की चरण-दर-चरण गाइड - सुरक्षित और आसान Android पर WhatsApp कॉल रिकॉर्ड करने की चरण-दर-चरण गाइड - सुरक्षित और आसान

    फोन कॉल रिकॉर्ड करना अपेक्षाकृत सीधा है और इसने हमें सोचने पर मजबूर कर दिया - - - क्या WhatsApp कॉल भी रिकॉर्ड की जा सकती हैं? हाल ही में, लगभग सभी मैसेंजर ऐप्स ने वीडियो और वॉयस कॉल को अपनी सर्वोपरि विशेषताओं के रूप में शामिल किया है। अब हम VoIP तकनीक का उपयोग करके दुनिया भर के लोगों को मुफ्त में क