学向勤中得,萤窗万卷书。这篇文章主要讲述Android笔记之网络状态推断相关的知识,希望能为你提供帮助。
1、首先当然得在 manifest 中加入检查网络状态的权限;
< uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"> < /uses-permission>
< uses-permission android:name="android.permission.INTERNET"/>
2、详细推断步骤 (1)首先要先获得Android 对连接管理的一个类对象。
ConnectivityManager manager = (ConnectivityManager)getSystemService(
Context.CONNECTIVITY_SERVICE);
(2)获得网络链接状态 if (manager.getActiveNetworkInfo() != null) { networkFlag = manager.getActiveNetworkInfo().isAvailable(); }
(3)假设没有连接,弹出对话框提示用户连接,并在“设置”button里让用户跳转到设置网络界面。 if (! networkFlag) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(android.R.drawable.ic_dialog_alert); builder.setTitle("网络状态"); builder.setMessage("当前网络不可用。是否设置网络?"); builder.setPositiveButton("设置", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Intent wifiSettingsIntent = new Intent("android.settings.WIFI_SETTINGS"); startActivity(wifiSettingsIntent); } }); builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.create(); builder.show(); }
(4)最后一步,也是比較关键一步,就是在manifest 里声明该Activity 。 假设没做,则会出现“xxx 已经停止执行”,原因显而易见。 问题是,我们曾经都是自己建立的Activity ,知道怎样声明。这里是系统自己的setting , 我们怎样声明呢?
< PreferenceScreen android:title="设置网络" android:summary=" "> < intent android:action="android.intent.action.MAIN" android:targetPackage="com.android.settings" android:targetClass="com.android.settings.WirelessSettings" /> < /PreferenceScreen>
在application 里面写上以上代码就可以。【Android笔记之网络状态推断】
(困惑了好久,最终在一个前辈博客里找到了答案,在此感谢,http://blog.csdn.net/shenyuemei/article/details/8005241)
因为代码简单,所以就不上传DEMO 代码了。
推荐阅读
- SiteMesh2-sitemesh.xml的ConfigDecoratorMapper映射器的用法
- ASPF(Application Specific Packet Filter)
- 几种Android数据序列化方案
- TreadAPP-使用线程下载文件
- Android6.0-运行时权限处理
- Android scrollTo() scrollBy() Scroller解说及应用
- Android Apk的反编译和加密
- 07_apply rolling updates to a service
- SiteMesh2-sitemesh.xml的PageDecoratorMapper映射器的用法