我很长时间寻找但未找到答案,热门更改蓝牙连接参数(连接间隔,从属延迟,监控超时 )在Android(主)设备上。对我来说必须重要的是监督超时,因为defaut的android是20秒,我需要减少,我找到CONNECTION_PRIORITY_BALANCED
,CONNECTION_PRIORITY_HIGH
和CONNECTION_PRIORITY_LOW_POWER
,但他们不会改变监督超时时间,
或无法从Android(主)更改连接参数? 请帮我。 谢谢你的到来。
答案 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
的实施。