Android VpnService 使用(一)

Android VpnService 使用(一)

本篇算是VpnService 使用的第一篇文章,主要講述service創建,intent調用.

1: 申請權限

  <service android:name=".MyVpnService" android:permission="android.permission.BIND_VPN_SERVICE"><intent-filter><action android:name="android.net.VpnService"/></intent-filter></service>

2: 實現

首選,我們需要調用VpnService.prepare函數. 該方法用于準備建立VPN連接.

  1. 如果VPN應用程序已經準備好,或者用戶之前已經同意VPN應用程序 該函數返回null
  2. 否則則返回intent.
 Intent prepare = VpnService.prepare(getApplicationContext());if (prepare != null) {startActivityForResult(prepare, 0);} else {Log.d(TAG, "onCreate: onActivityResult");onActivityResult(0, RESULT_OK, null);}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode == RESULT_OK) {Intent intent = new Intent(this, MyVpnService.class);startService(intent);Log.d(TAG, "onActivityResult: startService");}
}
import android.content.Intent;
import android.net.VpnService;
import android.os.ParcelFileDescriptor;
import android.util.Log;/*** @Author: zh* @Time: 23-12-11.* @Email:* @Describe:*/
public class MyVpnService extends VpnService {@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {VpnService.Builder builder = new VpnService.Builder();ParcelFileDescriptor parcelFileDescriptor = builder.addAddress("192.168.0.1", 24).addRoute("0.0.0.0", 0).addDnsServer("192.168.1.1").establish();if (parcelFileDescriptor==null ){Log.i("MyVpnService","MyVpnService not prepared");return START_STICKY;}return START_STICKY;}
}

授權的彈框如下:
在這里插入圖片描述
在這里插入圖片描述

設置中可以找到對應的Vpnservice:

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214779.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214779.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214779.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android 7.1 默認自拍鏡像

Android 7.1 默認自拍鏡像 近來收到客戶需求反饋需要將相機前攝成像默認為鏡像顯示&#xff0c;大致思路我們可以在保存數據前將前攝拍的照片轉為鏡像&#xff0c;保存數據是通過PhotoMode.java文件中的saveData方法實現&#xff0c;具體修改參照如下&#xff1a; 首先添加將圖…

LeetCode力扣每日一題(Java):27、移除元素

一、題目 二、解題思路 1、我的思路 因為題目中說“元素的順序可以改變。你不需要考慮數組中超出新長度后面的元素。”也就是說&#xff1a; 輸入&#xff1a;nums [3,2,2,3], val 3 輸出&#xff1a;2, nums [2,2] 解釋&#xff1a;函數應該返回新的長度 2并且 nums 中的…

JVM性能調優

遇到以下情況&#xff0c;就需要考慮進行JVM調優了&#xff1a; Heap內存&#xff08;老年代&#xff09;持續上漲達到設置的最大內存值&#xff1b; Full GC 次數頻繁&#xff1b; GC 停頓時間過長&#xff08;超過1秒&#xff09;&#xff1b; 應用出現OutOfMemory 等內存異常…

xtts和ogg不選擇?

不選擇ogg的理由&#xff1a; 1.需要在源端創建用戶賦權&#xff0c;啟用數據庫最小日志&#xff0c;附加日志等操作--對生產影響較大 2.外鍵約束過多&#xff0c;割接啟用可能很慢https://www.modb.pro/db/201126--割接停機時間影響 3.初始化配置expdp導出可能快照過舊&#x…

H3C網絡設備交換機風扇亮黃燈故障處理

H3C出現如下報錯信息: [H3C]fan prefer-direction slot 1 power%Jan 1 04:30:13:401 2013 H3C DEV/1/FAN_DIRECTION_NOT_PREFERRED: Fan 1 airflow direction is not preferred on slot 1, please check it. %Jan 1 04:30:13:404 2013 H3C DEV/1/FAN_DIRECTION_NOT_PREFERRED…

代碼隨想錄算法訓練營第四十八天 _ 動態規劃_198.打家劫舍、213.打家劫舍II、337.打家劫舍 III。

學習目標&#xff1a; 動態規劃五部曲&#xff1a; ① 確定dp[i]的含義 ② 求遞推公式 ③ dp數組如何初始化 ④ 確定遍歷順序 ⑤ 打印遞歸數組 ---- 調試 引用自代碼隨想錄&#xff01; 60天訓練營打卡計劃&#xff01; 學習內容&#xff1a; 198.打家劫舍 動態規劃五步曲&a…

深入理解JVM虛擬機第二十八篇:詳解JVM當中方法重寫的本質和虛方法表

&#x1f609;&#x1f609; 歡迎加入我們的學習交流群呀&#xff1a; ??1&#xff1a;這是孫哥suns給大家的福利&#xff01; ??2&#xff1a;我們免費分享Netty、Dubbo、k8s、Mybatis、Spring...應用和源碼級別的視頻資料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&a…

2022年拉丁美洲中東和非洲醫療機器人市場及全球概況報告

今天分享的是機器人系列深度研究報告&#xff1a;《2022年拉丁美洲中東和非洲醫療機器人市場及全球概況報告》。 &#xff08;報告出品方&#xff1a;Apollo Reports&#xff09; 報告共計&#xff1a;195頁 研究方法論 2.1通過桌面研究和內部存儲庫的假設 a)最初&#xff…

基于java的Redis工具類可緩存Object,list,set,map!!!

目錄 簡介&#xff1a;springboot redis啟動器redis配置&#xff1a;工具類 簡介&#xff1a; 添加redis啟動器&#xff0c;配置redis相關配置&#xff0c;使用工具類緩存數據 封裝的方法有&#xff1a;緩存Object,list,set,map類型數據的方法、獲取指定key的value、判斷指定k…

【LeetCode刷題】-- 118.楊輝三角

118.楊輝三角 class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> res new ArrayList<List<Integer>>();for(int i 0; i < numRows;i){List<Integer> ret new ArrayList<>();for(…

18.Java程序設計-基于Springboot的電影院售票系統的設計與實現

摘要 電影產業在當今社會中占據著重要地位&#xff0c;電影院作為觀影的主要場所&#xff0c;其售票系統的高效性和用戶體驗至關重要。本文基于Spring Boot框架設計并實現了一款電影院售票系統&#xff0c;旨在提高售票效率、優化用戶體驗&#xff0c;并解決傳統售票方式存在的…

PHP 之道(PHP The Right Way 中文版)

PHP 之道&#xff08;PHP The Right Way 中文版&#xff09;

我的NPI項目之Android 顯示 -- 背光的電路小知識

由于使用的高通平臺一直在演化&#xff0c;從SDM660,QCM4290,QCM4490再到QCM6490。產品的背光設計也是一直在迭代。 簡單羅列了一下所經歷的一些設計&#xff0c;簡單的背光也涉及到了很多學問。 先說有哪些類型&#xff1a; 1. SDM660上由PMIC提供了wled給背光, 透過驅動直…

軟件設計師——軟件工程(一)

&#x1f4d1;前言 本文主要是【軟件工程】——軟件設計師——軟件工程的文章&#xff0c;如果有什么需要改進的地方還請大佬指出?? &#x1f3ac;作者簡介&#xff1a;大家好&#xff0c;我是聽風與他&#x1f947; ??博客首頁&#xff1a;CSDN主頁聽風與他 &#x1f304…

FTR223限時回歸?經典三花再加金翅膀,CL500特別款亮相

FTR223可以說是非常經典的一款本田小攀爬車型了&#xff0c;之前我還有幸玩過一段時間&#xff0c;最近本田在泰國車展上展出了CL500的特別版&#xff0c;其中FTR223紀念版的版畫讓人眼前一亮&#xff0c;經典的白、紅、藍三色搭配讓人眼前一亮。 CL500這臺車在國內今年剛上市&…

筆記本電腦安裝了Ubuntu系統設置關蓋/合蓋不掛起/不睡眠

文章目錄 簡介通過gnome-tweaks設置通過更改登錄配置文件logind.conf設置參考資料 簡介 學習工作中需要用到筆記本安裝Ubuntu Linux系統&#xff0c;并且需要關蓋電腦不關機、不掛起且不睡眠。為此&#xff0c;本篇博客整理了兩種常規操作方式&#xff0c;并給了詳細的步驟&am…

Ubuntu20 USB 權限配置

// &#xff08;保姆級&#xff09;Ubuntu下的USB設備永久權限設備起別名方法 cd /etc/udev/rules.dsudo vim motor_control_usb.rules增加如下內容SUBSYSTEMS"usb", ATTRS{idVendor}"0483", ATTRS{idProduct}"2000", GROUP"edda", …

某信服 EDR 白程序DLL劫持

本文用到的白程序回復公眾號20231211進行獲取。 嗯… 記得去年HW的時候某信服給我裝的EDR一直沒卸載&#xff0c;不是不想卸載&#xff0c;是因為卸載要密碼&#xff0c;所以就擺爛了。。。。 找到EDR這個目錄&#xff0c;然后把目錄復制到虛擬機中&#xff0c;然后一個一個e…

相控與斬控交交調壓(THD的計算)

相控與斬控交交調壓&#xff08;THD的計算&#xff09;

LeetCode-1008. 前序遍歷構造二叉搜索樹【棧 樹 二叉搜索樹 數組 二叉樹 單調棧】

LeetCode-1008. 前序遍歷構造二叉搜索樹【棧 樹 二叉搜索樹 數組 二叉樹 單調棧】 題目描述&#xff1a;解題思路一&#xff1a;題目大致意思就是給定一個二叉樹的前序遍歷&#xff0c;求對應的二叉搜索樹。一種比較特殊的點是「二叉搜索樹」的中序遍歷的結果是【有序序列】&am…