एंड्रॉइड में फोन कॉल कैसे करें और कॉल किए जाने पर मेरी गतिविधि पर वापस आएं?


129

मैं फोन कॉल करने के लिए एक गतिविधि शुरू कर रहा हूं, लेकिन जब मैंने 'एंड कॉल' बटन दबाया, तो यह मेरी गतिविधि पर वापस नहीं जाता है। क्या आप मुझे बता सकते हैं कि 'कॉल एंड' बटन दबाए जाने पर मैं कॉल गतिविधि कैसे शुरू कर सकता हूं जो मेरे पास वापस आती है? यह मैं फोन कॉल कर रहा हूं:

    String url = "tel:3334444";
    Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(url));

जवाबों:


106

कॉल समाप्त होने पर देखने के लिए PhoneStateListener का उपयोग करें। कॉल शुरू करने के लिए प्रतीक्षा करने के लिए आपको श्रोता क्रियाओं को ट्रिगर करने की आवश्यकता होगी (PHONE_STATE_OFFHOOK से PHONE_STATE_IDLE तक फिर से प्रतीक्षा करें) और फिर IDLE स्थिति पर अपने ऐप को वापस लाने के लिए कुछ कोड लिखें।

आपको यह सुनिश्चित करने के लिए किसी श्रोता को किसी सेवा में चलाने की आवश्यकता हो सकती है और आपका ऐप पुनः चालू हो जाएगा। कुछ उदाहरण कोड:

EndCallListener callListener = new EndCallListener();
TelephonyManager mTM = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
mTM.listen(callListener, PhoneStateListener.LISTEN_CALL_STATE);

श्रोता की परिभाषा:

private class EndCallListener extends PhoneStateListener {
    @Override
    public void onCallStateChanged(int state, String incomingNumber) {
        if(TelephonyManager.CALL_STATE_RINGING == state) {
            Log.i(LOG_TAG, "RINGING, number: " + incomingNumber);
        }
        if(TelephonyManager.CALL_STATE_OFFHOOK == state) {
            //wait for phone to go offhook (probably set a boolean flag) so you know your app initiated the call.
            Log.i(LOG_TAG, "OFFHOOK");
        }
        if(TelephonyManager.CALL_STATE_IDLE == state) {
            //when this state occurs, and your flag is set, restart your app
            Log.i(LOG_TAG, "IDLE");
        }
    }
}

अपनी Manifest.xmlफ़ाइल में निम्नलिखित अनुमति जोड़ें:

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

10
अनुमति न भूलें। ;)
Gp2mv3

5
जैसा कि Gp2mv3 ने नोट किया है, AndroidManifest.xml में READ_PHONE_STATE अनुमति जोड़ना न भूलें।
कूपर

6
@moonlightcheese क्या आप कॉल ऐप से हमारे ऐप पर वापस आने के लिए कोड जोड़ सकते हैं?
गीक

यह खतरनाक है क्योंकि यह आपके द्वारा हर बार कॉल करने पर आपकी एप्लिकेशन गतिविधि को हमेशा खोल देगा
user924

49

यह स्टार्टर द्वारा पूछे गए प्रश्न के बारे में है।

आपके कोड के साथ समस्या यह है कि आप ठीक से नंबर नहीं दे रहे हैं।

कोड होना चाहिए:

private OnClickListener next = new OnClickListener() {

     public void onClick(View v) {
        EditText num=(EditText)findViewById(R.id.EditText01); 
        String number = "tel:" + num.getText().toString().trim();
        Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse(number)); 
        startActivity(callIntent);
    }
};

मैनिफ़ेस्ट फ़ाइल में अनुमति जोड़ना न भूलें।

<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>

या

<uses-permission android:name="android.permission.CALL_PRIVILEGED"></uses-permission>

मामले में आपातकालीन नंबर के लिए DIALप्रयोग किया जाता है।


7
मुझे यह देखने के लिए एक कठिन समय मिल रहा है कि मूल प्रश्न में आपका कोड कोड से अलग कैसे है
एलिजा सौनकिन

कोड अलग नहीं है। आपको मैनिफ़ेस्ट फ़ाइल में अनुमति जोड़ने की आवश्यकता है।
प्रिया

4
android.permission.CALL_PRIVILEGED अनुमति केवल ऐप स्तर पर उपलब्ध सिस्टम ऐप्स को दी जाती है।
CoDe

और वह क्या है? यह आपकी गतिविधि पर वापस नहीं लौटेगा
user924

24

हमारे पास एक ही समस्या थी और PhoneStateListenerकॉल समाप्त होने पर पहचान करने के लिए एक का उपयोग करके इसे हल करने में कामयाब रहे , लेकिन इसके साथ ही हमें finish()इसे फिर से शुरू करने से पहले मूल गतिविधि के लिए जाना था startActivity, अन्यथा कॉल लॉग इसके सामने होगा।


4
आप एक अलग विधि का उपयोग करके इससे बच सकते हैं। यदि आप एक ContentObserver बनाते हैं जो Android कॉल लॉग का निरीक्षण करता है, तो कॉल लॉग परिवर्तन होने तक ऐप शुरू नहीं होगा। मुझे वास्तव में इस मॉडल के पक्ष में PhoneStateListener को डंप करना था, क्योंकि मेरे ऐप को कॉल लॉग डेटा की आवश्यकता थी, और श्रोता उन परिवर्तनों से पहले लौट रहे थे। pastebin.com/bq2s9EVa
चाँदनीचे

11
@ आंद्रे: आपका लिंक टूटा हुआ प्रतीत होता है
समुच्चय

मैं आपको एक लाख प्रतिष्ठा दूंगा (यदि मेरे पास बहुत :) :) मेरे दिन बनाने के लिए धन्यवाद!
कीबी

1
लिंक के साथ समस्या मैं कहता हूँ!
धीरज भास्कर

बचाव के लिए इंटरनेट पुरालेख ... web.archive.org/web/20120123224619/http://umamao.com/questions/…
बेसिक

13

मैंने EndCallListener को सबसे कार्यात्मक उदाहरण पाया, व्यवहार का वर्णन करने के लिए (फिनिश (), कॉल, रिस्टार्ट) मैंने कुछ शेयर्डप्रिफ़र जोड़े ताकि लिसनर के पास इस व्यवहार को प्रबंधित करने के लिए एक संदर्भ था।

My OnClick, initialise और EndCallListener केवल ऐप से कॉल का जवाब देते हैं। अन्य कॉल को नजरअंदाज कर दिया।

import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;

public class EndCallListener extends PhoneStateListener {

private String TAG ="EndCallListener";
private int     LAUNCHED = -1;

SharedPreferences prefs = PreferenceManager
                            .getDefaultSharedPreferences(
                                myActivity.mApp.getBaseContext());

SharedPreferences.Editor _ed = prefs.edit();

@Override
    public void onCallStateChanged(int state, String incomingNumber) {
    String _prefKey = myActivity.mApp                          
                      .getResources().getString(R.string.last_phone_call_state_key),
    _bPartyNumber = myActivity.mApp                           
                      .getResources().getString(R.string.last_phone_call_bparty_key);

    int mLastCallState = prefs.getInt(_prefKey, LAUNCHED);

    //Save current call sate for next call
    _ed.putInt(_prefKey,state);
    _ed.commit();

        if(TelephonyManager.CALL_STATE_RINGING == state) {
            Log.i(TAG, " >> RINGING, number: " + incomingNumber);
        }
        if(TelephonyManager.CALL_STATE_IDLE == state && mLastCallState != LAUNCHED ) {
            //when this state occurs, and your flag is set, restart your app

            if (incomingNumber.equals(_bPartyNumber) == true) {
                //Call relates to last app initiated call
            Intent  _startMyActivity =  
               myActivity.mApp                               
               .getPackageManager()                                  
               .getLaunchIntentForPackage(
                 myActivity.mApp.getResources()
                 .getString(R.string.figjam_package_path));

_startMyActivity.setAction(                                     
        myActivity.mApp.getResources()
        .getString(R.string.main_show_phone_call_list));

                myActivity.mApp
                        .startActivity(_startMyActivity);
                Log.i(TAG, "IDLE >> Starting MyActivity with intent");
            }
            else
                Log.i(TAG, "IDLE after calling "+incomingNumber);

        }

    }
}

इन्हें strings.xml में जोड़ें

<string name="main_show_phone_call_list">android.intent.action.SHOW_PHONE_CALL_LIST</string>
<string name="last_phone_call_state_key">activityLpcsKey</string>
<string name="last_phone_call_bparty_key">activityLpbpKey</string>

और आपके मेनिफेस्ट में ऐसा कुछ है अगर आपको कॉल से पहले लुक और फीलिंग लौटानी है

  <activity android:label="@string/app_name" android:name="com.myPackage.myActivity" 
      android:windowSoftInputMode="stateHidden"
        android:configChanges="keyboardHidden" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <action android:name="android.intent.action.SHOW_PHONE_CALL_LIST" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
  </activity>

और इन्हें अपने 'myActivity' में डालें

public static Activity mApp=null; //Before onCreate()
  ...
onCreate( ... ) {
  ...
if (mApp == null) mApp = this; //Links your resources to other classes
  ...
    //Test if we've been called to show phone call list
    Intent _outcome = getIntent();
    String _phoneCallAction = mApp.getResources().getString(R.string.main_show_phone_call_list);
    String _reqAction = _outcome.getAction();//Can be null when no intent involved

         //Decide if we return to the Phone Call List view
         if (_reqAction != null &&_reqAction.equals(_phoneCallAction) == true) {
                         //DO something to return to look and feel
         }

  ...
        myListView.setOnItemClickListener(new OnItemClickListener() { //Act on item when selected
             @Override
             public void onItemClick(AdapterView<?> a, View v, int position, long id) {

                 myListView.moveToPosition(position);
                 String _bPartyNumber = "tel:"+myListView.getString(myListView.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 

                 //Provide an initial state for the listener to access.
                 initialiseCallStatePreferences(_bPartyNumber);

                 //Setup the listener so we can restart myActivity
                    EndCallListener _callListener = new EndCallListener();
                    TelephonyManager _TM = (TelephonyManager)mApp.getSystemService(Context.TELEPHONY_SERVICE);

                    _TM.listen(_callListener, PhoneStateListener.LISTEN_CALL_STATE);

                         Intent _makeCall = new Intent(Intent.ACTION_CALL, Uri.parse(_bPartyNumber));

                 _makeCall.setComponent(new ComponentName("com.android.phone","com.android.phone.OutgoingCallBroadcaster"));
                    startActivity(_makeCall);                           
                finish();
              //Wait for call to enter the IDLE state and then we will be recalled by _callListener
              }
        });


}//end of onCreate()

onitreate () के बाद myActivity में अपने onClick पर व्यवहार के लिए इस initilaise का उपयोग करें

private void initialiseCallStatePreferences(String _BParty) {
    final int LAUNCHED = -1;
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(
                                mApp.getBaseContext());
    SharedPreferences.Editor _ed = prefs.edit();

    String _prefKey = mApp.getString(R.string.last_phone_call_state_key),
           _bPartyKey = mApp.getString(R.string.last_phone_call_bparty_key);

    //Save default call state before next call
        _ed.putInt(_prefKey,LAUNCHED);
        _ed.putString(_bPartyKey,_BParty);
        _ed.commit();

}

आपको पता होना चाहिए कि फोन नंबर की सूची पर क्लिक करने से आपकी सक्रियता समाप्त हो जाती है, कॉल को नंबर पर कर देता है और कॉल समाप्त होने पर आपकी सक्रियता पर वापस लौटता है।

अपने ऐप के बाहर से कॉल करना, जबकि यह अभी भी आस-पास है, आपकी सक्रियता को फिर से शुरू नहीं करेगा (जब तक कि इसे अंतिम BParty नंबर के रूप में ही नहीं कहा जाता है)।

:)


5
क्षमा करें, लेकिन यह कोड कुछ बदसूरत लग रहा है। हालांकि जवाब के लिए धन्यवाद
पियरे

7

आप startActivityForResult () का उपयोग कर सकते हैं


1
एंड्रॉइड 5.0 का उपयोग करते हुए onActivityResult विधि तुरंत कॉल शुरू होती है !!
पंचिज

6

यह मेरे दृष्टिकोण से समाधान है:

ok.setOnClickListener(this);
@Override
public void onClick(View view) {
    if(view == ok){
        Intent intent = new Intent(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:" + num));
        activity.startActivity(intent);

    }

बेशक गतिविधि (वर्ग) की परिभाषा में आपको View.OnClickListener को लागू करना होगा।


6

यहां मेरा उदाहरण है, पहले उपयोगकर्ता को उस नंबर पर लिखना होता है जिसे वह डायल करना चाहता है और फिर कॉल बटन दबाता है और फोन पर निर्देशित हो जाता है। कॉल रद्द होने के बाद उपयोगकर्ता को एप्लिकेशन पर वापस भेज दिया जाता है। इसके लिए बटन को xml में एक ऑनक्लिक विधि ('उदाहरण में' मेकफोन कॉल ') की आवश्यकता है। आपको मैनिफ़ेस्ट में अनुमति भी दर्ज करनी होगी।

प्रकट

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

गतिविधि

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class PhoneCall extends Activity {

    EditText phoneTo;

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

        phoneTo = (EditText) findViewById(R.id.phoneNumber);

    }
    public void makePhoneCall(View view) {




        try {
            String number = phoneTo.getText().toString();
            Intent phoneIntent = new Intent(Intent.ACTION_CALL);
            phoneIntent.setData(Uri.parse("tel:"+ number));
            startActivity(phoneIntent);


        } catch (android.content.ActivityNotFoundException ex) {
            Toast.makeText(PhoneCall.this,
                    "Call failed, please try again later!", Toast.LENGTH_SHORT).show();
        }
    }

}

एक्सएमएल

 <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="phone"
        android:ems="10"
        android:id="@+id/phoneNumber"
        android:layout_marginTop="67dp"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Call"
        android:id="@+id/makePhoneCall"
        android:onClick="makePhoneCall"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />

तुम वह भी नहीं कर रहे हो जिसके बारे में तुम बात कर रहे हो। READ_PHONE_STATE - आप अपने उदाहरण कोड में इसका इस्तेमाल नहीं करते, आपने इसे क्यों जोड़ा? यदि आप रद्दीकरण बटन दबाते हैं, तो यह आपको आपकी ऐप गतिविधि पर वापस लौटा देगा, लेकिन प्रश्न के लेखक ने कॉल स्वीकार किए जाने के बाद गतिविधि को कैसे वापस लिया जाए, इस बारे में पूछा
user924

6
@Override
public void onClick(View view) {
    Intent phoneIntent = new Intent(Intent.ACTION_CALL);
    phoneIntent.setData(Uri.parse("tel:91-000-000-0000"));
    if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
        return;
    }
    startActivity(phoneIntent);
}

5

यदि आप एक श्रोता का उपयोग करने जा रहे हैं, तो आपको इस अनुमति को प्रकट रूप में भी जोड़ना होगा।

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

3

कॉल देखने के बाद PhoneStateListener के अंदर बेहतर उपयोग समाप्त हो गया है:

Intent intent = new Intent(CallDispatcherActivity.this, CallDispatcherActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

जहां CallDispatcherActivity वह गतिविधि है जहां उपयोगकर्ता ने कॉल किया है (मेरे मामले में टैक्सी सेवा डिस्पैचर के लिए)। यह सिर्फ ऊपर से एंड्रॉइड टेलीफोनी ऐप को हटा देता है, उपयोगकर्ता यहां देखे गए बदसूरत कोड के बजाय वापस आ जाता है।


1
और फोन कॉल करने के बाद श्रोता को हटाना न भूलें, जैसे:((TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE)).listen(this, LISTEN_NONE);
दिमित्री नोविकोव

मैंने आपके दृष्टिकोण का उपयोग करने की कोशिश की है, लेकिन गतिविधि (जिसे ControlPanel कहा जाता है) को पुन: सक्रिय नहीं किया जा रहा है। फोन डायलर इंटरफ़ेस और ऑनर्स पर लॉगर्स दिखाना जारी रखता है और कंट्रोलपैनल के भीतर ऑन एंट्री प्वाइंट्स पूरी तरह से चुप हैं। यहाँ आशय है Intent intentRestart = new Intent(ControlPanel.this, ControlPanel.class);:। मुझे यह इंगित करना चाहिए कि PhoneStateListener भी ControlPanel के भीतर है। यानी, मेरा लक्ष्य यूआई को उस राज्य में पुनर्स्थापित करना है जो फोन कॉल शुरू करने से पहले था। कोई सुझाव?
पेटीएच

अपने PhoneStateListener कार्यान्वयन के अंदर प्रवेश करने का प्रयास करें।
दिमित्री नोविकोव

3

अपने पर लौटने के लिए Activity, आपको सुनने की आवश्यकता होगी TelephonyStates। उस पर listenerआप एक बार फ़ोन के निष्क्रिय Intentहोने पर उसे फिर से खोलने के लिए भेज सकते हैं Activity

कम से कम मैं इसे कैसे करूंगा।


3
  Intent callIntent = new Intent(Intent.ACTION_CALL);  
  callIntent.setData(Uri.parse("tel:"+number));  
   startActivity(callIntent);   

 **Add permission :**

 <uses-permission android:name="android.permission.CALL_PHONE" />          

2

प्रयोग करके देखें:

finish();

गतिविधि के अंत में। यह आपको आपकी पिछली गतिविधि पर पुनर्निर्देशित करेगा।


2

जब PhoneStateListenerउपयोग किया जाता है, तो कॉल के बाद की जाने वाली कार्रवाई को ट्रिगर करने के लिए PHONE_STATE_IDLEएक PHONE_STATE_OFFHOOKका पालन करना सुनिश्चित करने के लिए उपयोग किया जाता है। यदि ट्रिगर देखने पर होता है PHONE_STATE_IDLE, तो आप कॉल करने से पहले इसे समाप्त कर देंगे। क्योंकि आप राज्य में बदलाव देखेंगेPHONE_STATE_IDLE -> PHONE_STATE_OFFHOOK -> PHONE_STATE_IDLE.


क्या यह संभव नहीं है कि चल रही कॉल स्क्रीन खुलने पर ऐप बंद हो जाए?
1930 में lisovaccaro

श्रोता वस्तु एक बार टेलीफ़ोनी ((TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE)).listen(new PhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE)((TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE)).listen(this, LISTEN_NONE)
मैनजर

2

// setonclicklistener में यह कोड डालें:

EditText et_number=(EditText)findViewById(R.id.id_of_edittext); 
String my_number = et_number.getText().toString().trim();
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse(my_number)); 
startActivity(callIntent);

// मेनिफेस्ट में कॉल की अनुमति दें:

<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>

1

@ डमित्री नोविकोव, FLAG_ACTIVITY_CLEAR_TOPनए के शीर्ष पर किसी भी सक्रिय उदाहरण को साफ करता है। इसलिए, यह प्रक्रिया पूरी होने से पहले पुराने उदाहरण को समाप्त कर सकता है।



1

कदम:

1) Manifest.xmlफ़ाइल में आवश्यक अनुमतियाँ जोड़ें ।

<!--For using the phone calls -->
<uses-permission android:name="android.permission.CALL_PHONE" />
<!--For reading phone call state-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

2) फोन की स्थिति में बदलाव के लिए एक श्रोता बनाएं।

public class EndCallListener extends PhoneStateListener {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
    if(TelephonyManager.CALL_STATE_RINGING == state) {
    }
    if(TelephonyManager.CALL_STATE_OFFHOOK == state) {
        //wait for phone to go offhook (probably set a boolean flag) so you know your app initiated the call.
    }
    if(TelephonyManager.CALL_STATE_IDLE == state) {
        //when this state occurs, and your flag is set, restart your app
    Intent i = context.getPackageManager().getLaunchIntentForPackage(
                            context.getPackageName());
    //For resuming the application from the previous state
    i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

    //Uncomment the following if you want to restart the application instead of bring to front.
    //i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    context.startActivity(i);
    }
}
}

3) अपने में श्रोता को इनिशियलाइज़ करें OnCreate

EndCallListener callListener = new EndCallListener();
TelephonyManager mTM = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
mTM.listen(callListener, PhoneStateListener.LISTEN_CALL_STATE);

लेकिन अगर आप अपने आवेदन पिछले राज्य को फिर से शुरू करने के लिए या इसे वापस ढेर से वापस लाना चाहते हैं , तो बदलने के FLAG_ACTIVITY_CLEAR_TOPसाथFLAG_ACTIVITY_SINGLE_TOP

इस उत्तर को देखें



0

अपना कॉल शुरू करते समय, यह ठीक दिखता है।

हालाँकि आपके ऐप को सामने लाने में android 11+ और नीचे का अंतर है।

एंड्रॉइड 10 या उससे कम आपको एक नया इरादा शुरू करने की आवश्यकता है, एंड्रॉइड 11+ जो आप बस उपयोग करते हैं BringTaskToFront

कॉल स्थिति में IDLE:

if (Build.VERSION.SDK_INT >= 11) {
    ActivityManager am = (ActivityManager) activity.getSystemService(Activity.ACTIVITY_SERVICE);
    am.moveTaskToFront(MyActivity.MyActivityTaskId, ActivityManager.MOVE_TASK_WITH_HOME);
} else {
    Intent intent = new Intent(activity, MyActivity.class);
    activity.startActivity(intent);
}

मैं MyActivity.MyActivityTaskIdअपनी गतिविधि पर कॉल करते समय सेट करता हूं जैसे कि, यह काम नहीं करता है, इस चर को उस पृष्ठ के मूल गतिविधि पृष्ठ पर सेट करें जिसे आप वापस प्राप्त करना चाहते हैं।

MyActivity.MyActivityTaskId = this.getTaskId();

MyActivityTaskId मेरी गतिविधि कक्षा पर एक स्थिर चर है

public static int MyActivityTaskId = 0;

मुझे उम्मीद है कि यह आपके लिए काम करेगा। मैं उपरोक्त कोड का उपयोग थोड़ा अलग तरीके से करता हूं, जैसे ही कॉल का उत्तर दिया जाता है मैं अपना ऐप खोल देता हूं, उपयोगकर्ता कॉल करने वाले का विवरण देख सकता है।

मैंने कुछ सामान सेट किया है AndroidManifest.xml:

/*Dont really know if this makes a difference*/
<activity android:name="MyActivity" android:taskAffinity="" android:launchMode="singleTask" />

और अनुमति:

<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />

कृपया सवाल पूछें कि क्या आप कब अटक गए हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.