我有一个应用程序,它有一个接收器android.intent.action.BOOT_COMPLETED
并启动一个私人 VPN。但是当我收到一个android.intent.action.BOOT_COMPLETED
网络还没有准备好。我该怎么做才能启动android.intent.action.BOOT_COMPLETED
并等待获得网络状态?例如,我可以有一个android.intent.action.BOOT_COMPLETED
但手机没有互联网连接,或者我可以有一个android.intent.action.BOOT_COMPLETED
5 秒后访问互联网。
问问题
1456 次
2 回答
3
您可以在 android.net.conn.CONNECTIVITY_CHANGE 操作上注册一个广播接收器。
然后检查您是否像这样连接:
public boolean isOnline(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
//should check null because in air plan mode it will be null
return (netInfo != null && netInfo.isConnected());
}
来源和更多信息: 用于在 android 应用程序中检查互联网连接的广播接收器
于 2015-04-22T14:04:58.550 回答
2
您始终可以在一个接收器上收听多个项目:
<receiver android:name=".ReceiverName" >
<intent-filter >
<action android:name="android.net.wifi.STATE_CHANGE" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
因此,启动后,您只需等待连接更改并执行您的操作。
于 2015-04-22T14:07:05.497 回答