Android:您可以通过电话发送/接收数据吗?

时间:2011-05-13 09:03:45

标签: android phone-call

我正在尝试将一些数据传递给我正在通话的手机。 有什么方法可以做到这一点吗? 我真的不关心数据类型(单个位就足够了), 只要我能识别并触发特定行动。

发送代码:

Intent call = new Intent();
call.setAction(Intent.ACTION_CALL);
call.setData(Uri.parse("tel:" + contact.getNumber()));
call.putExtra("Boolean", true);
startActivity(call);

收到代码:

public void onReceive(Context context, Intent intent) {
    Bundle extras = intent.getExtras();
    if (extras != null) {
        if (extras.getBoolean("Boolean")){
            Log.d("BOOL", "true");
        } else {
                            Log.d("BOOL", "false");
    }else {
        Log.d("BOOL", "nothing");
    }
}

1 个答案:

答案 0 :(得分:8)

你在做什么是不可能的。当您拨打其他设备的电话时,它不一定是您正在呼叫的Android设备。您发送到呼叫意图的布尔值正由该意图读取,而不会发送到呼叫中的其他设备。

如果要将数据发送到其他电话设备,可以发送触摸音。这些是通过按钮按下的声音(例如,如果你给你的银行打电话,他们要求你按一个用于客户服务,两个用于电话银行等,那些按键发送一个稍微不同的音调沿着接收器重新连接作为“一”和“两”的触摸按键,所以可以执行一些动作。

您需要向电话呼叫发送按键音,并在另一端处理接收它们。正确的实施将允许两部Android手机进行通信,就像发送数据一样。

它们通常也被称为DTMF音调。

Intent mIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber + ";" + dtmfSequence));

上面的代码将通过电话发送DTMF音。

我不确定如何访问接收器设备上的音频流,因此您必须自己查看,以获取流并听取DTMF音调。

祝你好运,希望这会有所帮助!