Android
Android

Android 判断网络连接

相关类

ConnectivityManager

说明

ConnectivityManager 是一个类,主要的作用是用来回答关于网络连接的状态,当网络状态发生改变时,它还会通知应用程序。

获取

获取这个类的实例方法:

Context.getSystemService(Context.CONNECTIVITY_SERVICE).、

Context 需要调用ConnectivityManager类的类上下文。

使用

ConnectivityManager.getActiveNetworkInfo 返回默认网络数据类型的详细数据。

如果是在WiFi环境下则返回WiFi网络数据的详细信息。
如果是在移动环境下则返回移动网络数据的详细信息。

getAllNetworkInfo  返回一个NetworkInfo数组类型

调用NetworkInfo类的公开方法getState来判断网络是否连接。

源码

public boolean isNetworkAvailable( Context contexts)
    {
        Context context = contexts;
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivityManager.getActiveNetworkInfo() == null)
        {return false;}
        else
        {
            NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
            if (networkInfo != null && networkInfo.length > 0)
            {
                for (int i = 0; i < networkInfo.length; i++)
                {
                    System.out.println(i + "===状态===" + networkInfo[i].getState());
                    System.out.println(i + "===类型===" + networkInfo[i].getTypeName());
                    // 判断当前网络状态是否为连接状态
                    if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
                    {
                        return true;
                    }
                }
            }
        }
        return false;
    }

相关连接

ConnectivityManager:http://api.apkbus.com/reference/android/net/ConnectivityManager.html

AndRoid 日期加减

代码
/**  
 * 获取指定日后 后 dayAddNum 天的 日期  
  * @param day  日期,格式为String:"2013-9-3";  
 * @param dayAddNum 增加天数 格式为int;  
 * @return  
  */  
     public static String getDateStr(String day,int dayAddNum) {  
         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");  
         Date nowDate = null;  
         try {  
             nowDate = df.parse(day);  
         } catch (ParseException e) {  
             e.printStackTrace();  
         }  
         Date newDate2 = new Date(nowDate.getTime() + dayAddNum * 24 * 60 * 60 * 1000);  
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");  
         String dateOk = simpleDateFormat.format(newDate2);  
         return dateOk;  
     }  
出现的问题

日期加减不正确

问题代码

Date newDate2 = new Date(nowDate.getTime() + dayAddNum 24 60 60 1000);

原因

计算机默认数值为Int类型,Int 类型越界。

解决方法

dayAddNum 24L 60 60 1000

“L” 标志

“L” 标志:将类型转换为Long类型。

安卓双击解锁原理

现在市面上有些手机不支持双击解锁这个功能,于是想借助第三方软件进行实现。有需求就有市场,于是此类软件如雨后春笋般悄然出现。由于我的手机也不支持双击解锁这个功能,所以我也下载了一个类似软件。但是我考虑一个问题“是否费电”。想要知道这个问题,那么就要知道这个软件的原理。

原理:

通过监视 android.intent.action.SCREEN_OFF 消息,出现此消息后在屏幕上覆盖一个遮盖层。这个遮盖层在双击的时候唤醒屏幕。然后销毁这个遮盖层,所以双击时会突然黑屏一下。

Android 设置menu 菜单字体颜色

<pre class="brush: xml; display: block;>

效果如下图

请输入图片描述