当前位置: 亚洲城ca88 > ca88 > 正文

不断更新,判别当前网络服务

时间:2019-06-06 23:08来源:ca88
看清当前网络是还是不是是三G互连网 java public static boolean is3G(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo active

看清当前网络是还是不是是三G互连网 java public static boolean is3G(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); if (activeNetInfo != null && activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) { return true; } return false; }剖断当前互联网是还是不是是wifi网络 java public static boolean isWifi(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); if (activeNetInfo != null && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) { return true; } return false; }看清是还是不是有网络连接 java public static boolean isConnect(Context context) { ConnectivityManager connectivity = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetInfo = connectivity.getActiveNetworkInfo(); if (activeNetInfo != null && activeNetInfo.isConnected()) { if (activeNetInfo.getState() == NetworkInfo.State.CONNECTED) { return true; } } return false; }

三.收获当前版本号

Utils

  • void init(@NonNull final Application app)

在 Application 发轫化的时候调用

  • Application getApp()

获取 Application 对象

该工具类的重中之重作用是为我们提供3个 Application 对象,而 Application 是 Context 的兑现类。这样,大家在写过多工具类的时候,就无需传入 Context 对象了。比方 ToastUtils,SPUtils 等,方便用高速


二.1键加多qq群
http://qun.qq.com/join.html 选取需求增多的群,然后采纳手提式有线电话机平台,就可以生成对应的代码。

FragmentUtils

  • addFragment
  • hideAddFragment
  • removeFragment
  • replaceFragment
  • popFragment
  • showFragment
  • dispatchBackPress

让 Fragment 处理 Back 事件,“高内聚,低耦合”,一贯是我们追求的靶子,而那完美地反映了那或多或少


1一.判别字符串是或不是为空

赢得网络状态

NetStateUtils

  • boolean is3G(Context context)

判别是不是是 三G 网络

  • isWifi(Context context)

看清是不是是 wifi 互联网

  • is2G(Context context)

判别是或不是是 2G 网络

  • boolean isWifiEnabled(Context context)

看清 WiFi 是或不是展开

  • isNetworkConnected(Context context)

推断是或不是有互连网连接

  • boolean isMobileConnected(Context context)

看清当前是不是是移动网络,并且互连网是不是可用

  • getAPNType(Context context)

得到当前的网络状态:(该格局是自定义的) :未有互连网-0:WIFI网络壹:4G网络-四:3G互连网-3:2G网络-2

  • String getHostIp()

收获本地的 IP 地址

  • boolean isGPSEnabled(Context context)

判断 GPS 是不是打开

越来越多措施,请参见该类,这里不一1表明了。

public static Drawable loadImageFromAsserts(final Context ctx, String fileName) {    try {        
   InputStream is = ctx.getResources().getAssets().open(fileName);       
   return Drawable.createFromStream(is, null);    
} catch (IOException e) {       
   if (e != null) {            
   e.printStackTrace();      
   }    
} catch (OutOfMemoryError e) {        i
   if (e != null) {            
   e.printStackTrace();       
 }    
} catch (Exception e) {      
  if (e != null) {           
  e.printStackTrace();   
  }  
  }   
 return null;
}

大局十一分捕获

一旦在Application 开始化就可以

public class AndroidUtilsApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        //崩溃处理
        CrashHandlerUtil crashHandlerUtil = CrashHandlerUtil.getInstance();
        crashHandlerUtil.init(this);
        crashHandlerUtil.setCrashTip("很抱歉,程序出现异常,即将退出!");
    }
}

public static boolean isNetworkConnected(Context context) {    
if (context != null) {       
       ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);        
       NetworkInfo mNetworkInfo = mConnectivityManager                .getActiveNetworkInfo();        
       if (mNetworkInfo != null) {            
             return mNetworkInfo.isAvailable() 
                         && mNetworkInfo.isConnectedOrConnecting();    
                                 } 
                     }    
       return false;
}

FileUtils

  • File getFileByPath(final String filePath)
  • isFileExists
  • rename
  • isDir
  • isFile
  • createOrExistsDir
  • createOrExistsFile
  • copyOrMoveDir
public static boolean isNull(String string) {    
  if (string != null) {        
  string = string.trim();        
  if (string.length() != 0) {            
  return false;        
  }    
  }    
  return true;
}    

题外话

到如今结束,工具类的搜罗大约这么多,有部分本地还没一块的,后续会不断更新。

Github 地址
CSDN 博客地址

  1. 字符串是不是含有汉字

DateUtils

  • String getCurrentDate()

获得当前的日子 ,格式为 yyyy-MM-dd

  • String getWeekOfDate(Date date)

赢得钦赐日期是星期几,参数为null时表示收获当前几天子是周末

  • String getWeekOfDate(long timeMiss)

依赖飞秒数到手当前是星期几

  • getCurrentDateAndTime

赢妥贴前时光和日期,yyyy-MM-dd HH:mm:ss。


为防守更新不立刻,github地址如下:https://github.com/SolveBugs/NormalCode

DensityUtil

  • dip2px
  • px2dip
  • px2sp
  • sp2px

首要用于管理 dp 与 px 的互转,sp 与 px 的互转等。


public static boolean isWifi(Context context) {    
        if (context != null) {       
        ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE);        
        NetworkInfo mNetworkInfo = mConnectivityManager                .getActiveNetworkInfo();       
        if (mNetworkInfo != null) {            
                return mNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI;       
                                 }    
                              }   
        return false;
}

ZipUtils

  • boolean zipFiles(final Collection<File> resFiles, final String zipFilePath)
    throws IOException

  • boolean zipFiles(final Collection<File> resFiles, final String zipFilePath, final String comment)

  • boolean unzipFiles(final Collection<File> zipFiles, final String destDirPath)
    throws IOException


6.当下是还是不是是wifi

StringUtils

  • isEmpty(CharSequence str)

认清是不是是空字符串

  • String getStr(String str,String defStr)

收获字符串的值,借使是 null,重临 defStr。当然你也能够调用 getStr(String str) 方法,为 null 的话,重临 ""。

受益:假若字符串为空,则会包空指针非凡。调用该格局,大家能够不必每一遍推断字符串是或不是为空。

  • length(CharSequence str)

获取字符串的尺寸。平常大家只要调用 String.length ,倘若字符串为空,则会包空指针格外。调用该措施,大家得以无需每一次判别字符串是否为空。

  • String capitalizeFirstLetter(String str)

该措施是将字符串的首字母变为大小写

    /**
     * capitalize first letter
     *
     * <pre>
     * capitalizeFirstLetter(null)     =   null;
     * capitalizeFirstLetter("")       =   "";
     * capitalizeFirstLetter("2ab")    =   "2ab"
     * capitalizeFirstLetter("a")      =   "A"
     * capitalizeFirstLetter("ab")     =   "Ab"
     * capitalizeFirstLetter("Abc")    =   "Abc"
     * </pre>
     *
     * @param str
     * @return
     */

public static void setListViewHeightBasedOnChildren(ListView listView) {    
// 获取ListView对应的Adapter   
ListAdapter listAdapter = listView.getAdapter();    
if (listAdapter == null) { 
       return;   
}    
int totalHeight = 0;    
for (int i = 0; i < listAdapter.getCount(); i  ) {        
View listItem = listAdapter.getView(i, null, listView);        
listItem.measure(0, 0); // 计算子项View 的宽高       
 totalHeight  = listItem.getMeasuredHeight(); // 统计所有子项的总高度   
}    
ViewGroup.LayoutParams params = listView.getLayoutParams();    
params.height = totalHeight   (listView.getDividerHeight() * (listAdapter.getCount() - 1));     
listView.setLayoutParams(params);
}

完全脱离

写在基类 BaseActivity,然后每一种Activity都去承袭

public class BaseActivity extends AppCompatActivity {
    public ActivityManagerUtil activityManagerUtil;
    public Activity mActivity;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(getLayoutId() );
        mActivity = this;
        activityManagerUtil = ActivityManagerUtil.getInstance();
        activityManagerUtil.pushOneActivity(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //结束Activity&从栈中移除该Activity
        activityManagerUtil.popOneActivity(this);
    }

    protected abstract int getLayoutId();

}

急需完全剥离

activityManagerUtil.appExit();

public static int getVersionCode(Context context) {   
      int code = 0;    
      if (context == null) {        
      return code;   
      } try {        
      PackageInfo info =context.getPackageManager().getPackageInfo(context.getPackageName(), 0);          code = info.versionCode;   
            } catch (PackageManager.NameNotFoundException e) {
                    }   
      return code;
}

KeyBoardUtil

  • KeyBoardUtil getInstance(Activity activity)

取得实例对象

  • show()

体现输入法

  • hide()

隐藏输入法


public static boolean isMobileConnected(Context context) {    
        if (context != null) {        
        ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);       
        NetworkInfo mMobileNetworkInfo = mConnectivityManager                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);        
        if (mMobileNetworkInfo != null) {            
               return  mMobileNetworkInfo.isAvailable() 
                       && mMobileNetworkInfo.isConnectedOrConnecting();        
                                        }    
                              }    
        return false;
}

RexUtils

  • checkIdCard(String idCard)

证实身份证编号

  • checkMobile(String mobile)

证实手提式无线电话机号码(支持国际格式, 86135xxxx...(中中原人民共和国外省), 00852壹三七xxxx...(中华夏族民共和国Hong Kong))

  • boolean checkPhone(String phone)

  • checkEmail

查证是或不是是电子邮箱。格式是数字,字母,下划线,但不分包 -。

  • checkDigit

表明是不是是整数

  • checkDecimals

证实整数和浮点数

  • checkBlankSpace

调查是还是不是是空白字符

  • checkChinese

查看是不是是普通话

  • checkBirthday

证实日期(日期,格式:一九九三-0九-0三,或一九九二.0九.03)

  • 验证 URL 地址

格式:http://blog.csdn.net/gdutxiaoxu/article/details/71732642或 http://www.csdn.net:80

  • checkIpAddress

匹配 IP 地址

  • phoneNoHide

手提式有线电话机号码,中间4个人星号替换

  • cardIdHide

银行卡号,保留最终几个人,其余星号替换

关于更加多正则表明式的,能够参照作者的那一篇博客。Android 常用正则表达式


5.脚下是或不是是移动互连网

前言

在 Android 开荒中,大家平日供给动用各类工具类,比方SPUills,ListUtils,TimeUtils,StringUtils,ToastUtisl ,FragmentUtils 等等。今天,那篇博客首要介绍自身平时在付出中常用到的工具类,希望能给大家带来一丢丢扶持,后续会不断更新,应接大家投入合伙珍爱。

一.给当下分界面增加2个发光度

SPUtils

  • get
  • put
  • getLong
  • getInt
  • getString
  • getFloat
  • getShort
  • putInt
  • putString

在该工具里面,它借助于 Utils getApp() 方法,由此,我们在调用相应措施的时候没有须要每一回都流传 Context 。方便又便捷


四.论断当前网络是或不是可用

ListUtils

在 Android 开垦中,对 List 的操作也是10分广泛的。

  • getSize(List<V> sourceList)

赢得 List 的数据。该办法相比较守旧的方法,没有供给每三回都去判空。

if(sourceList==null){
    return 0;
}else{
    sourceList.size();
}

// 或者 相当于以下代码
sourceList == null ? 0 : sourceList.size()
  • isEmpty(List<V> sourceList)

决断 List 是或不是为空

  • boolean isEquals(List<V> actual, List<V> expected)

认清几个链表是或不是等于

  • addDistinctEntry(List<V> sourceList, V entry)

if entry already exist in sourceList, return false, else add it and return true.

  • addDistinctList(List<V> sourceList, List<V> entryList)

add all distinct entry to list1 from list2

  • distinctList(List<V> sourceList)

remove duplicate entries in list

  • getNext(List<V> sourceList, V value)

八.拨通话(记得在清单文件增添权限)

ArrayUtils

ArrayUtils 里面包车型地铁方式与 ListUtils 基本是逐一对应的,这里就不再11演说了


监听网络转移

android 监听网络状态的变动及实际利用

监听网络转移的,主要有四个广播

<action android:name="android.NET.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.Net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.net.wifi.STATE_CHANGE" />

亟待专注的 android.NET.conn.CONNECTIVITY_CHANGE 那么些广播,从 Android 7.0 开端,如果是静态注册的,将无法摄取广播。

越来越多表现改换请查看官方网址地址


柒.ListView依据item计算出实际的万丈

AppUtil

  • String getAppVersionName(Context context)

获取app版本名

  • int getAppVersionCode(Context context)

获取app版本号


/** 
* 给界面添加透明度 
*  @param phoneNum 
*/
public void call(String phoneNum){
    Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"  phoneNum));
    startActivity(intent);
}

IntentUtils

  • Intent openFile(String filePath)

用来发出打开各个类型文件的 Intent,包蕴图片,音频文件,摄像文件,APK,ppt,xls,doc,chm,txt 等文件


/** 
* 给界面添加透明度 
*
 * @param activity
 * @param bgAlpha 
*/
public static void backgroundAlpha(Activity activity, float bgAlpha) { 
      activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
      WindowManager.LayoutParams lp = activity.getWindow().getAttributes();   
      lp.alpha = bgAlpha; //0.0-1.0    
      activity.getWindow().setAttributes(lp);
}

Android 常用工具类

Github 地址
CSDN 博客地址

public static boolean checkChinese(String sequence) {   
 final String format = "[\u4E00-\u9FA5\uF900-\uFA2D]";    
boolean result = false;    
Pattern pattern = Pattern.compile(format);    
Matcher matcher = pattern.matcher(sequence);    
result = matcher.find();   
 return result;
}

ToastUtils

  • showLongSafe
  • showShortSafe
  • showShort
  • showLong

showLongSafe 方法与 showLong 方法的区分在于 showLongSafe 是平安地,它可以一向在子线程中调用


10.从assets 文件夹中读取图片

编辑:ca88 本文来源:不断更新,判别当前网络服务

关键词: 亚洲城ca88