2017-06-22 120 views
0

我是一名新的android开发人员。我可以发送数据到Intent.ACTION_CALL吗? 我的代码是下面我可以向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); 

接收器的作用是android.intent.action.PHONE_STATE。我如何获得BroadcastReceiver的onReceive()中的标志值?

请帮我一把。

+0

请我答@manjari –

回答

0

试试这个创建一个类

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

现在创建这样

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); 

现在,在广播接收器看到的变化做了意向......

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

我试过了,它会得到Log.e(“你好我已收到”,example.str);为所有传出呼叫 – manjari

相关问题