Android 程序的开机启动,监测是否联网,联网再启动
2018-01-04 14:57
393 查看
Android启动时,会发出一个系统广播 ACTION_BOOT_COMPLETED,字符串常量是“android.intent.action.BOOT_COMPLETED”。我们需要在接收到该广播的时候让再发送广播让程序启动同时检测WiFi是否打开,这里没有做数据的检测,可以自己写。判断网络是否可用,可用再启动程序。网络状态发生变化的广播是“CONNECTIVITY_ACTION”,值是“android.net.conn.CONNECTIVITY_CHANGE”;
代码是这样,转别人的,谢谢
/**
* 开机启动检测和连接wifi检测
* */
public class BootBroadcastReceiver extends BroadcastReceiver {
static final String ACTION = "android.intent.action.BOOT_COMPLETED";//boot
static final String NetChange = "android.net.conn.CONNECTIVITY_CHANGE";//the net change
private static final String TAG = "BootBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiInfo = connectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
Log.d(TAG, intent.getAction());
if((intent.getAction().equals(ACTION) && wifiInfo.isConnected())
||(intent.getAction().equals(NetChange) && wifiInfo.isConnected())){
Intent startIntent = new Intent(context,MainActivity.class);
startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startIntent);
}else{
Log.d(TAG, "no net ,do not start app");
}
}
}
在清单配置文件,也就是Android Manifest中设置 就OK了
<receiver android:name=".receiver.BootBroadcastReceiver" >
<intent-filter >
<!-- boot -->
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
<intent-filter >
<!-- net change action -->
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
代码是这样,转别人的,谢谢
rong_wz
/** * 开机启动检测和连接wifi检测
* */
public class BootBroadcastReceiver extends BroadcastReceiver {
static final String ACTION = "android.intent.action.BOOT_COMPLETED";//boot
static final String NetChange = "android.net.conn.CONNECTIVITY_CHANGE";//the net change
private static final String TAG = "BootBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiInfo = connectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
Log.d(TAG, intent.getAction());
if((intent.getAction().equals(ACTION) && wifiInfo.isConnected())
||(intent.getAction().equals(NetChange) && wifiInfo.isConnected())){
Intent startIntent = new Intent(context,MainActivity.class);
startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startIntent);
}else{
Log.d(TAG, "no net ,do not start app");
}
}
}
在清单配置文件,也就是Android Manifest中设置 就OK了
<receiver android:name=".receiver.BootBroadcastReceiver" >
<intent-filter >
<!-- boot -->
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
<intent-filter >
<!-- net change action -->
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
相关文章推荐
- android 系统级的开机启动程序
- Android根据用户设置决定是否在开机时是否启动
- Android开机自启动程序设置及控制方法
- 关于在android程序执行过程中使用Intent启动另一个活动后,同个方法未执行的代码是否会继续执行。
- Android中开机启动程序
- android 安装apk文件,启动android程序,判断某个程序是否安装,遍历所有已经安装额程序
- Android 判断程序是否已安装 & 启动另一个程序
- Android笔记——判断程序是否第一次启动
- Android判断程序是否第一次启动
- C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动(转载)
- Android设置开机的时候某一个程序自动启动实例
- 在android系统上写C语言程序--开机启动该程序不进入安卓系统
- android程序开机启动【转帖】
- 应用开机自启动&首启动&是否安装&应用信息界面&启动程序&桌面选择器
- android 开机自动启动程序
- Android手机开发:开机自动启动程序
- android软件开发:程序的开机启动
- C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动
- android 开机启动程序
- Android根据用户设置决定是否在开机时启动应用程序