(机器翻译)
我使用此代码启动vpn服务
代码首先检查用户名和密码值是否为空,然后VPN服务运行
我的问题是没有设定意图
在调试器中,intent的值为null
问题出在哪儿?
OnCheckedChangeListener connect=new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1)
{
str_user=User.getText().toString();
str_pass=Pass.getText().toString();
if(str_user.matches(""))
{
Toast.makeText(getApplicationContext(),"please inter username" , Toast.LENGTH_LONG).show();
User.setFocusable(true);
Off_On.setChecked(false);
return;
}
else if(str_pass.matches(""))
{
Toast.makeText(getApplicationContext(),"please inter password" , Toast.LENGTH_LONG).show();
Pass.setFocusable(true);
Off_On.setChecked(false);
return;
}
else if(arg1==true)
{
Boolean s=false;
s=Internet_state();
if(!s)
{
Toast.makeText(getApplicationContext(), "please check internet connection", Toast.LENGTH_LONG).show();
Off_On.setChecked(false);
return;
}
else
{
Intent intent = VpnService.prepare(MainActivity.this);
if (intent != null) {
startActivityForResult(intent, 0);
}
}
}
}
};
答案 0 :(得分:2)
prepare(Context)方法返回null,因为VPN应用程序已经准备好了。
准备建立VPN连接。如果VPN应用程序已准备好或者用户先前已同意VPN应用程序,则此方法返回null。否则,它将Intent返回到系统活动
如果VPN应用已准备好,请查看要遵循的步骤:here