我正在尝试将一些数据传递给我正在通话的手机。 有什么方法可以做到这一点吗? 我真的不关心数据类型(单个位就足够了), 只要我能识别并触发特定行动。
发送代码:
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");
}
}
答案 0 :(得分:8)
你在做什么是不可能的。当您拨打其他设备的电话时,它不一定是您正在呼叫的Android设备。您发送到呼叫意图的布尔值正由该意图读取,而不会发送到呼叫中的其他设备。
如果要将数据发送到其他电话设备,可以发送触摸音。这些是通过按钮按下的声音(例如,如果你给你的银行打电话,他们要求你按一个用于客户服务,两个用于电话银行等,那些按键发送一个稍微不同的音调沿着接收器重新连接作为“一”和“两”的触摸按键,所以可以执行一些动作。
您需要向电话呼叫发送按键音,并在另一端处理接收它们。正确的实施将允许两部Android手机进行通信,就像发送数据一样。
它们通常也被称为DTMF音调。
Intent mIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber + ";" + dtmfSequence));
上面的代码将通过电话发送DTMF音。
我不确定如何访问接收器设备上的音频流,因此您必须自己查看,以获取流并听取DTMF音调。
祝你好运,希望这会有所帮助!