如何解决与HMS DeviceVirtualization引擎集成后,为什么设备列表不会显示在App GUI中?
我在这里遵循了HMS设备虚拟化(DV)引擎开发的开发人员指南-https://developer.huawei.com/consumer/en/doc/development/connectivity-Guides/devicevirtualization-preparation,我将DV SDK集成到我的应用程序中,编译并构建完成。但是,将DV应用程序部署到手机后,硬件设备列表将不会显示在应用程序GUI中。可能是什么原因?
解决方法
请检查是否已执行以下操作:
- 首先,您需要将DV Engine的使用权限申请发送到:devConnect@huawei.com
- 一旦您的应用程序获得批准,请确保在AndroidManifest.xml中还包含所有必需的权限和您的应用程序ID作为元数据。 DV Engine的虚拟设备权限,这是使用分布式虚拟设备所必需的。
com.huawei.permission.DISTRIBUTED_VIRTUALDEVICE
<meta-data
android:name="com.huawei.hms.client.appid"
android:value="appid=xxxxxxxxx"/>
-
确保代码中的DV SDK版本与手机中的版本相同。以下是显示如何检查DV版本的示例代码:CURRENT_KIT_VERSION是与该应用程序兼容的HUAWEI DV Engine版本。您的应用程序需要记录版本,并检查手机上的DV Engine版本是否与该应用程序兼容的DV Engine版本相同。
boolean isSupport = true;
尝试{
// Obtain the running version of DV Kit.
字符串版本= DvKit.getVersion();
if (version.compareTo(CURRENT_KIT_VERSION) < 0) { // The current DV Kit version does not meet the app running requirements. isSupport = false; }
}捕获(NoClassDefFoundError e){
// The current running environment does not support the DV Kit.
isSupport = false;
Log.e(TAG,"DvKit not exist",e);
}
如果(isSupport){
// The current DV Kit version meets the app running requirements. Intent intent = new Intent(MainActivity.this,DvKitDemoActivity.class); startActivity(intent);
}
,1。请检查设备兼容性:
当前,DeviceVirtualization Engine仅支持华为手机。当应用程序在不受支持的运行环境中或在运行不受支持的EMUI版本的华为电话上调用DV Engine中的API时,系统会引发NoClassDefFoundError。因此,应用程序应检查运行环境与DV Engine版本之间的兼容性。有关详细信息,请参见docs。
2。检查回调方法connect是否成功调用:
如果是,则您的配置正确;
如果不是,请检查您是否具有访问相关API的权限。为了安全起见,您需要向华为申请使用DeviceVirtualization Engine开放API的权限。就像@Zinna所说的那样,申请API权限需要在AppGallery Connect上创建应用程序后生成的应用程序ID,并且指纹已经配置。对于许可申请,请发送电子邮件至devConnect@huawei.com,并指定主题“ DeviceVirtualization Engine许可申请”。有关详细信息,请参见docs。
3。首次启动应用程序时需要网络连接。
检查回调方法 startDiscovery 是否已成功调用。如果是这样,并且设备参数不为空,则可以通过线程将数据发送到UI线程。有关详细信息,请参阅官方网站上提供的demo。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。