如何修复我的dns仅vpn项目中的建立错误



我想做一个只有Dns的Vpn。我有一个问题

public void run() {
try {
//a. Configure the TUN and get the interface.
mInterface = builder.setSession("MyVPNService")
.addAddress("192.168.0.1", 24)
.addDnsServer("8.8.8.8")
.addRoute("0.0.0.0", 0)
.establish();

最后一个建立方法抛出一个android.os.RemoteException异常,如

W/System.err: java.lang.SecurityException: com.example.dnschangervpn.MyVpnService does not require android.permission.BIND_VPN_SERVICE
at android.os.Parcel.createException(Parcel.java:1966)
at android.os.Parcel.readException(Parcel.java:1934)
at android.os.Parcel.readException(Parcel.java:1884)
at android.net.IConnectivityManager$Stub$Proxy.establishVpn(IConnectivityManager.java:2441)
W/System.err:     at android.net.VpnService$Builder.establish(VpnService.java:993)
at com.example.dnschangervpn.MyVpnService$1.run(MyVpnService.java:34)
at java.lang.Thread.run(Thread.java:764)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.connectivity.Vpn.establish(Unknown Source:496)
at com.android.server.ConnectivityService.establishVpn(Unknown Source:107)
at android.net.IConnectivityManager$Stub.onTransact(IConnectivityManager.java:640)
at android.os.Binder.execTransact(Binder.java:739)

我发现我必须给我的服务manifest许可,所以我这样做了,它工作。

<service
android:name=".MyVpnService"
android:permission="android.permission.BIND_VPN_SERVICE"
/>

最新更新