2017-06-22 1 views
0

Je suis un nouveau développeur android. puis-je envoyer des données à Intent.ACTION_CALL? Mon code est ci-dessousPuis-je envoyer des données à Intent.ACTION_CALL?

Intent callIntent = new Intent(Intent.ACTION_CALL); 
callIntent.setData(Uri.parse("tel:"+phone_number)); 
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
callIntent.putExtra("flag",1); 
context.startActivity(callIntent); 

L'action du récepteur est android.intent.action.PHONE_STATE. Comment puis-je obtenir la valeur de l'indicateur dans onReceive() du BroadcastReceiver?

S'il vous plaît aidez-moi.

+0

s'il vous plaît vérifier mes ans @manjari –

Répondre

0

essayer cela crée une classe

public class example 
{ 
public static boolean data; 
public static String strData = ""; 
} 

maintenant créer une intention comme celui-ci

String uri = "tel:"+my_name; 
    Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse(uri)); 
    example.data = true; /*see change, set data in Constants.data*/ 
    example.str = "Hello world..."; /*see change*/ 
    callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    _context.startActivity(callIntent); 

maintenant dans le récepteur de diffusion voir les changements effectués ...

public class PhoneStateReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 

    final Bundle bundle = intent.getExtras(); 
    if(bundle != null && example.data) { /*changes done, get boolean from the Constants.data*/ 
     Log.e("hi i have recieve",example.str);//print recieved data 
    } 

    if (intent.getAction().equals("android.intent.action.PHONE_STATE")) { 
     String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE); 
     Log.d(TAG,"PhoneStateReceiver**Call State=" + state); 
     if (state.equals(TelephonyManager.EXTRA_STATE_IDLE)) { 
      if(recieveCall){ 

      } 
      Log.d(TAG,"PhoneStateReceiver**Idle"); 
     } else if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { 

     } else if (state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) { 
     } 
    } else if (intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL")) { 
     // Outgoing call 
     String outgoingNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 
     Log.d(TAG,"PhoneStateReceiver **Outgoing call " + outgoingNumber); 

     setResultData(null); // Kills the outgoing call 

    } else { 
     Log.d(TAG,"PhoneStateReceiver **unexpected intent.action=" + intent.getAction()); 
    } 
     } 
} 
+0

j'ai essayé et il aura Log.e ("salut j'ai reçu", exemple.str); pour tous les appels sortants – manjari