Was*_*man 6 java vpn android strongswan
始终在线的 VPN 交换机可以以编程方式打开吗?
我已经添加了设备管理员权限。在那之后,我设置了始终与设备管理员一起使用
mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
mDeviceAdminSample = new ComponentName(this, DeviceAdminReceiver.class);
isAdminApp = mDPM.isAdminActive(mDeviceAdminSample);
if (isAdminApp) {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
mDPM.setAlwaysOnVpnPackage(mDeviceAdminSample,"", true);
}
} catch (PackageManager.NameNotFoundException namenotfoundexception) {
namenotfoundexception.printStackTrace();
} catch (Exception ex) {
}
}
Run Code Online (Sandbox Code Playgroud)
但它并没有启用始终开启。
我已经添加了包名
mDPM.setAlwaysOnVpnPackage(mDeviceAdminSample,"my.app.package.name", true);
但仍然没有启用开关。
那么这段代码在做什么呢?如何以编程方式启用它?
我希望这就像下图
根据docs,setAlwaysOnVpnPackage只能由配置文件所有者(通常是工作配置文件上的 MDM 客户端)或设备所有者(对于完全托管的设备)使用:
由设备或配置文件所有者调用,通过特定应用程序为当前用户配置始终在线的 VPN 连接。此连接会自动授予并在重新启动后保留。
作为个人资料用户- 我不希望我的 VPN 自行决定何时连接(以编程方式设置始终打开将立即连接 VPN,如果实施正确)。
作为工作配置文件用户(戴着员工的帽子),这不是我的决定,而是我的组织的决定(通过配置文件所有者应用程序)。
所以,总而言之,这种行为是有道理的。
您可以克隆、构建和调试 Google 的Test DPC应用程序,而不是实施可能需要大量工作的 MDM ,该应用程序拥有以编程方式测试切换始终在线 VPN 所需的一切。
它还具有数百万个其他东西,您不需要这些东西,因此请务必忽略其余的:)
我没有看过他们的代码,但我建议搜索setAlwaysOnVpnPackage函数的用法。
Google 的测试 DPC应用程序:
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |