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

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


    因为代码简单,所以就不上传DEMO 代码了。
  • 相关阅读:
    java常见异常总结
    敏捷开发的七种主流方法
    转:一位10年Java工作经验的架构师聊Java和工作经验
    Map遍历
    Mybatis中的模糊查询
    Mybatis中动态SQL多条件查询
    J2EE,LAMP和ASP.NET三者比较
    关于加密
    Md5Hash的测试
    CentOS7 修改默认时区为 北京时间
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7088161.html
Copyright © 2020-2023  润新知