为什么设备列表在与HMS设备虚拟化引擎集成后不会显示在应用程序GUI中



我在这里遵循了设备虚拟化(DV(引擎开发的HMS开发者指南-https://developer.huawei.com/consumer/en/doc/development/connectivity-Guides/devicevirtualization-preparation,我将DV SDK集成到我的应用程序中,编译和构建都完成得很好。但在将我的DV应用程序部署到手机后,硬件设备列表将不会显示在应用程序GUI中。这可能是什么原因?

请检查您是否已经完成了以下操作:

  1. 首先,您需要将DV引擎的使用权限应用程序发送到:devConnect@huawei.com
  2. 一旦您的应用程序获得批准,请确保在AndroidManifest.xml中包含所有必需的权限和您的应用id作为元数据。DV Engine的虚拟设备权限,这对于使用分布式虚拟设备是强制性的

com.huawei.permission.DISTRIBUTED_VIRTUALDEVICE

<meta-data
android:name="com.huawei.hms.client.appid"
android:value="appid=xxxxxxxxx"/>
  1. 确保代码中的DV SDK版本与手机中的版本相同。下面是一个示例代码,展示了如何检查DV版本:CURRENT_KIT_version是该应用程序兼容的华为DV引擎版本。您的应用程序需要记录版本,并检查您手机上的DV引擎版本是否与该应用程序兼容的DV引擎版相同。

    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;
    }
    

    }catch(NoClassDefFoundError e({

    // The current running environment does not support the DV Kit.
    

    isSupport=false;

    Log.e(TAG, "DvKit not exist", e);
    

    }

    if(isSupport({

    // The current DV Kit version meets the app running requirements.
    Intent intent = new Intent(MainActivity.this, DvKitDemoActivity.class);
    startActivity(intent);
    

}

1。请检查设备兼容性:

目前,DeviceVirtualization Engine只支持华为手机。当应用程序在不支持的运行环境中调用DV Engine中的API时,或者在运行不支持的EMUI版本的华为手机上调用API时,系统会抛出NoClassDefFoundError。因此,应用程序应该检查运行环境和DV引擎版本之间的兼容性。有关详细信息,请参阅文档。

2.检查回调方法connect是否调用成功:

如果是,则说明您的配置是正确的
如果没有,请检查您是否有访问相关API的权限。出于安全考虑,您需要向华为申请使用DeviceVirtualization Engine的开放API的权限。正如@Zinna所说,申请API权限需要在AppGallery Connect上创建应用程序后生成的应用程序ID,并且指纹已经配置。如需申请许可,请发送电子邮件至devConnect@huawei.com,并指定主题";DeviceVirtualization Engine权限应用程序"有关详细信息,请参阅文档。

3.首次启动应用程序时需要网络连接

检查回调方法startDiscovery是否已成功调用。如果是这样,并且设备参数不为空,则可以通过线程向UI线程发送数据。有关详细信息,请参阅官方网站上提供的演示。

最新更新