码迷,mamicode.com
首页 > 移动开发 > 详细

Android笔记之网络状态推断

时间:2017-06-28 09:21:43      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:set   style   tail   post   track   method   声明   笔记   app   

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 里面写上以上代码就可以。

 (困惑了好久,最终在一个前辈博客里找到了答案,在此感谢,http://blog.csdn.net/shenyuemei/article/details/8005241)


因为代码简单,所以就不上传DEMO 代码了。

Android笔记之网络状态推断

标签:set   style   tail   post   track   method   声明   笔记   app   

原文地址:http://www.cnblogs.com/wzzkaifa/p/7088161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!