使用vpnExtension.startVpnExtensionAbility拉起自定义VpnExtensionAbility失败,系统会弹出VPN授权窗口,但VpnExtensionAbility的onCreate等生命周期没有被触发。
怀疑是module.json5中的extensionAbilities定义有问题,目前尝试的type为driver,无法拉起VpnExtensionAbility,如果把type修改为service,需要系统权限才能使用。文档中并没有详细说明VpnExtensionAbility应该声明为什么类型的ability。
拉起时可以看到日志:
[nodict]NETMANAGER_EXT [vpn_module_ext.cpp 97] execute StartVpnExtensionAbility result: 2097202
[nodict][ability_manager_service.cpp(CheckOptExtensionAbility:1939)]Extension ability type not match, set type: 502, real type: 18
[nodict][ability_manager_service.cpp(StartExtensionAbilityInner:2278)]CheckOptExtensionAbility error.
应该要使用一个type为502的值来声明VpnExtensionAbility,但是编译所有可用的type中无法找到值为502的(最多只能找到501的)
{
"name": "default",
"signingConfig": "default",
"compileSdkVersion": "4.1.0(11)",
"compatibleSdkVersion": "4.1.0(11)",
"runtimeOS": "HarmonyOS",
}
口味老师,可能是IDE日志打印问题,使用hdc命令查看日志后,实际发现有oncreate打印,麻烦尝试以下命令:
1、终端内先执行hdc shell。
2、随后执行hilog | grep UUVpnAbility
输出了对应打印:04-19 15:57:52.311 10127 10127 I A03D00/JSAPP: UUVpnAbility…oncreate