智能客服
你问我答,随时在线为你解决问题
尊敬的开发者,您好!
由于业务调整,我们将于2024年9月10日起不再支持新的开发者注册近距离通信服务,已开通近距离通信服务项目的开发者不受影响,仍可继续使用近距离通信服务,如有变更,我们会另行通知。感谢您的支持!
如果您在下面没有找到需要的问题,请加入Stack Overflow社区参与讨论。
可以。但是,未经身份验证建立的连接是不安全的,并且可能使设备面临严重的安全漏洞。为避免这种情况,请始终使用身份验证来保护您的连接。
不能。例如:如果发送方发送FILE数据后接着发送BYTES数据,接收方有可能先收到BYTES数据再收到FILE数据。但是,可以保证相同类型的数据按其发送顺序到达。
如果扫描和传输同一时间,可能使用不同技术,例如:使用Wi-Fi传输,使用蓝牙扫描。所以针对扫描的回调事件,您需要进行过滤,对已建立连接设备的扫描回调事件,您要按需进行特殊处理(例如:过滤掉onFound/onLost事件)。
Nearby Message数据是通过HTTPS加密通道进行传输的。
信标是使用基于低功耗蓝牙技术(Bluetooth Low Energy,简称BLE)向周围发送自己“特有ID”的一种物理设备,接收到该ID后,运行在智能手机的应用可以对该信号进行响应。
可以通过登录信标生产厂商的官方网站购买信标设备,例如网站:https://estimote.com/、https://kontakt.io/。
是的,开发者必须选择数据存储地。
您需要选择App对应的数据存储地(德国、新加坡、中国、俄罗斯),Beacon消息存储地与App的数据存储地一致。
近距离通信服务需要开启蓝牙,而使用蓝牙需要声明ACCESS_FINE_LOCATION权限。没有此权限,可能扫描不到设备。
最多可以配置100条消息规则。
- Nearby.getMessageEngine(yourContext).put(message, putOption).addOnFailureListener(e -> {
- if (e instanceof ResolvableApiException) {
- ResolvableApiException resolvableApiException = (ResolvableApiException) e;
- try{
- resolvableApiException.startResolutionForResult(yourActivity, 1212);
- }catch(IntentSender.SendIntentException ex){
- Log.e(TAG, ex.getMessage());
- }
- }
- });
频繁地建链,可能触发EMUI的系统管控,返回错误码:STATUS_BLUETOOTH_OPERATION_FAILED,请您从业务上避免频繁建链。
Nearby Service使用蓝牙扫描周边设备时会尝试打开系统位置信息开关。在部分机型上由于系统管控,无法自动开启位置信息开关,返回错误码:STATUS_MISSING_SETTING_LOCATION_ON,请开发者引导用户手动打开系统位置信息开关。
Android 11更改了应用查询用户在设备上已安装的其他应用以及与之交互的方式。如果应用的targetSdkVersion是30或者更高版本,并且集成的是Nearby SDK 6.1.0.301之前版本时,将无法访问HMS Core(APK),并且持续提示升级。
您可以通过以下两种方法解决。
升级SDK至6.1.0.301及以上版本,版本信息请参见版本更新说明。
如果不升级SDK,需要在“AndroidManifest.xml”中manifest下添加<queries>标签。
- <manifest ...>
- ...
- <queries>
- <intent>
- <action android:name="com.huawei.hms.core.aidlservice" />
- </intent>
- </queries>
- ...
- </manifest>
<queries>标签对工具的要求如下:
Nearby Service的全量API会对开发者传入的接口参数进行非空判断,如果为空则抛出NullPointerException或IllegalArgumentException异常,接口调用失败。您需要排查入参是否为空,以保证接口的正常调用。
请选择在线提单提交问题,华为支持人员会及时处理。