如何在一部手机上检查另一部手机是否接到来电?

时间:2014-06-05 11:25:41

标签: android bluetooth android-bluetooth

我有两部手机配对并通过蓝牙连接。如何在一部手机上以编程方式检查另一部手机是否正在接听来电?我应该使用特定的配置文件,即PBAP还是HFP?如果是的话,我该怎么做?

一旦我发现这一点,如果我想通过连接的手机接听来电,我应该如何实现?

2 个答案:

答案 0 :(得分:2)

下载Hands Free Profile pdf。它很容易买到。它为您提供有关HFP如何工作的所有详细信息以及HFP支持的用于通信的AT命令。没有可用的API。

正如eliasj所说,你需要实现HFP,当两部手机连接时,你可以通过AT命令在它们之间进行通信。

假设你有第一部手机是Android设备和第二部手机Android或任何设备,它们都是通过HFP连接的。

我没有完整的代码,但我可以建议你一些AT命令 -
 1.使用 AT + CIND?命令可以读取其他手机的指示灯状态  2.要启用指标状态更改报告,您需要使用 AT + CMER = 3,0,0,1 命令。
 3.一旦您收到来自AT + CMER'的有效回复。命令,您可以使用AlarmManager启动一个连续读取蓝牙套接字输入流的服务  4.由于步骤2.如果第二部电话有来电,蓝牙插座的输入流将包含 RING 作为警报。
我使用过实现Runnable的服务。以下是步骤4的示例代码.-

public void run()
{
    try
    {
        // Get input and output streams from Bluetooth socket.
        m_oInputStream = m_oBluetoothSocket.getInputStream();
        m_oOutputStream = m_oBluetoothSocket.getOutputStream();

        // Read input stream for +CIEV response is given or not.
        byte[] buffer = new byte[200];
        int nNumberOfBytesRead = m_oInputStream.read(buffer);

        String strResponse = new String(buffer).trim();

        if(true == strResponse.contains("RING"))
        {
            // Contains RING Alert. Answer the call.                
            // Start Activity for handling Incoming Call.
            Intent oIncomingCallActivityIntent = new Intent(getApplicationContext(), IncomingCallActivity.class);
            oIncomingCallActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            getApplicationContext().startActivity(oIncomingCallActivityIntent);

            // Stop service.
            stopSelf(); 
        }
    }
    catch(Exception e)
    {
        // Log the error.
    }
}

您需要实现处理来电的活动。它会接受或拒绝来电。要接受来电,请使用 AT + ATA 命令。你会收到"好的"作为第二部电话的回复。

我希望这会对你有所帮助。

答案 1 :(得分:0)

你应该实施HFP(免提方面)。当我在一年前看到这个问题时,无法将音频发送到手机(Android),但它现在可能有所改变。

查看How to send AT commands based on BT Hands-Free profile in android?中的问答(点击如何连接)和HFP规范https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=238193(关于配置文件的工作方式(第36页上的来电))