簡體   English   中英

始終在線的 VPN 以編程方式打開 android

[英]Always-on VPN switch on programmatically android

始終在線的 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) {
        }
    }

但它並沒有啟用始終開啟。

我已經添加了包名

mDPM.setAlwaysOnVpnPackage(mDeviceAdminSample,"my.app.package.name", true);

但仍然沒有啟用開關。

那么這段代碼在做什么呢? 如何以編程方式啟用它?

我希望這就像下圖

永遠在線的 VPN

根據docssetAlwaysOnVpnPackage只能由配置文件所有者(通常是工作配置文件上的 MDM 客戶端)或設備所有者(用於完全托管的設備)使用:

由設備或配置文件所有者調用以通過特定應用程序為當前用戶配置始終在線的 VPN 連接。 重新啟動后會自動授予並保留此連接。

作為個人資料用戶- 我不希望我的 VPN 自己決定何時連接(如果正確實施,以編程方式設置始終打開將立即連接 VPN)。

作為工作資料用戶(戴着員工的帽子) ,這不是我的決定,而是我的組織的決定(通過資料所有者應用程序)。

所以,總而言之,這種行為是有道理的。

更新:

您可以克隆、構建和調試 Google 的測試 DPC應用程序,而不是實施可能需要大量工作的 MDM,它具有以編程方式測試切換永遠在線 VPN 所需的一切。

它還有數百萬其他你不需要的東西,所以一定要忽略其余的:)

我沒有看過他們的代碼,但我建議搜索setAlwaysOnVpnPackage函數的用法。

Google 的測試 DPC應用程序:

  • 鏈接到 Play 商店
  • 鏈接到 GitHub 存儲庫(自行構建和調試)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM