Android蓝牙连接参数

时间:2015-12-15 08:17:10

标签: bluetooth bluetooth-lowenergy android-bluetooth

我很长时间寻找但未找到答案,热门更改蓝牙连接参数(连接间隔从属延迟监控超时 )在Android(主)设备上。对我来说必须重要的是监督超时,因为defaut的android是20秒,我需要减少,我找到CONNECTION_PRIORITY_BALANCEDCONNECTION_PRIORITY_HIGHCONNECTION_PRIORITY_LOW_POWER,但他们不会改变监督超时时间,

或无法从Android(主)更改连接参数? 请帮我。 谢谢你的到来。

1 个答案:

答案 0 :(得分:1)

不幸的是,您只能做任何API允许的事情。在大多数情况下,移动OS API不允许您进行低级别设置以达到用户友好体验的目的。想象一下,您开发了一个使用连接参数来消耗电池的应用程序...然后,您的应用程序的用户很可能会抱怨操作系统提供商或OEM。这不是想要的,应该加以防范。但是,如果您想出于实验原因(研究等)进行低级别更改,我建议您下载Android API源代码,进行更改并将自定义ANdroid API插入您的手机(您需要根植电话) )。

以下是BluetoothGatt.class中与您的请求相关的源代码中的相关部分:

    public boolean requestConnectionPriority(int connectionPriority) {
    if (connectionPriority < CONNECTION_PRIORITY_BALANCED ||
        connectionPriority > CONNECTION_PRIORITY_LOW_POWER) {
        throw new IllegalArgumentException("connectionPriority not within valid range");
    }

    if (DBG) Log.d(TAG, "requestConnectionPriority() - params: " + connectionPriority);
    if (mService == null || mClientIf == 0) return false;

    try {
        mService.connectionParameterUpdate(mClientIf, mDevice.getAddress(), connectionPriority);
    } catch (RemoteException e) {
        Log.e(TAG,"",e);
        return false;
    }

    return true;
}

我会寻找BluetoothGattService#connectionParameterUpdate的实施。