【发布时间】:2014-03-21 16:51:38
【问题描述】:
我使用以下代码创建了一个 vpnservice:
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
if (mThread != null)
{
mThread.Interrupt();
}
mThread = new Java.Lang.Thread(this,"360VpnThread");
mThread.Start();
return StartCommandResult.Sticky;
}
public override void OnDestroy()
{
base.OnDestroy();
}
public void Run()
{
var builder = new VpnService.Builder(this);
builder.SetSession(PackageName)
.SetMtu(1460)
.AddAddress("10.0.6.2", 24)
.AddDnsServer("8.8.8.8").AddRoute("0.0.0.0", 8);
mInterface = builder.Establish();
if (mInterface == null)
{
StopSelf();
}
}
但我得到这个错误:
java.lang.SecurityException: parspeed360.android.VpnService360 确实 不需要 android.permission.BIND_VPN_SERVICE
我已经将这些添加到 android manifest:
<application android:label="360.Android" android:icon="@drawable/Icon">
<service android:name=".Parspeed360.Android.VpnService360"
android:label="@string/ApplicationName"
android:exported="false"
android:permission="android.permission.BIND_VPN_SERVICE">
<intent-filter>
<action android:name="android.net.VpnService"/>
</intent-filter>
</service>
</application>
请帮帮我。
【问题讨论】:
-
但我这样做并得到异常 java.lang.securityexception : VpnService360 在调用 builder.Establish() 时不需要 android.premission.Bind_VPN_Service;
-
这个问题为我解决了!
标签: c# android android-intent xamarin vpn