调试MainActivity通过,可以正常调用VPNService

This commit is contained in:
free will committed 2021-07-20 11:01:58 +08:00
1 parent fbd3d46285
commit 5b3ac88746
3 files changed
+10 -3

No files matched your search

@@ -38,6 +38,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import cn.qjm253.quick_android_base.extensions.ContextExtensionKt;
@@ -122,7 +123,7 @@ public class MainActivity extends MINVpnBaseActivity<MainActivityPresenter>
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(!isConnected){
// 执行连接流程
connectVpn();
}else{
// 执行断开流程
disconnectVpn();
@@ -161,6 +162,7 @@ public class MainActivity extends MINVpnBaseActivity<MainActivityPresenter>
* 连接VPN服务器
*/
private void connectVpn(){
System.out.println("我要开始连接了");
Set<String> packageNames = new HashSet<>();
packageNames.add("com.pkusz.min_vpn_client");
if (!checkPackages(packageNames)) {
@@ -168,8 +170,10 @@ public class MainActivity extends MINVpnBaseActivity<MainActivityPresenter>
}
Intent intent = VpnService.prepare(this);
if (intent != null) {
System.out.println("用户尚未授权过开启VPN连接,请求用户授权...");
startActivityForResult(intent, 0);
} else {
System.out.println("用户已经授权,准备开始VPN连接...");
onActivityResult(0, Activity.RESULT_OK, null);
}
}
@@ -181,9 +185,9 @@ public class MainActivity extends MINVpnBaseActivity<MainActivityPresenter>
* @return
*/
private boolean checkPackages(Set<String> packageNames){
boolean hasCorrectPackageNames = packageNames.isEmpty() ||
@SuppressLint("QueryPermissionsNeeded") boolean hasCorrectPackageNames = packageNames.isEmpty() ||
getPackageManager().getInstalledPackages(0).stream()
.map(PackageInfo::describeContents)
.map(packageInfo -> packageInfo.packageName)
.collect(Collectors.toSet())
.containsAll(packageNames);
if (!hasCorrectPackageNames) {
@@ -112,6 +112,7 @@ public class SettingActivity extends MINVpnBaseActivity<SettingActivityPresenter
MINVpnSettingAPI.INSTANCE.updateMirPort(Integer.parseInt(mirPort));
MINVpnSettingAPI.INSTANCE.updateServicePrefix(servicePrefix);
MINVpnSettingAPI.INSTANCE.updateEncryptedConfig(isEncrypted);
System.out.println(MINVpnSettingAPI.INSTANCE);
// 显示保存成功的弹窗
btnSaveSetting.postDelayed(() -> {
@@ -83,10 +83,12 @@ public class MINVpnService extends VpnService implements Handler.Callback{
public int onStartCommand(Intent intent, int flags, int startId) {
// 根据intent传递的消息进行vpn的连接或断开操作
if (intent != null && ACTION_DISCONNECT.equals(intent.getAction())) {
System.out.println("onStartCommand-disconnecting...");
disconnect();
EventBus.getDefault().postSticky(new ConnectEvent(true, false));
return START_NOT_STICKY;
} else {
System.out.println("onStartCommand-connecting...");
connect();
return START_STICKY;
}