Android - 判断当前网络环境、隐藏软键盘、动态监测及获取权限、Bitmap与Base64互转、SHA1算法

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/101024337

一、判断当前网络环境

/**
 * 判断当前网络环境是WiFi还是移动数据
 *
 * @param activity 要调用方法的Activity
 * @return 网络类型,1为WiFi、2为移动数据、3为其它
 */
public static int checkNetType(Activity activity) {
    //判断是连接的内网还是外网主要用到ConnectivityManager
    ConnectivityManager cm = (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
    boolean isWifiNet = false;
    boolean isGprsNet = false;
    try {
        isWifiNet = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED ? true : false;
    } catch (Exception e) {
        e.printStackTrace();
    }
    try {
        isGprsNet = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ? true : false;
    } catch (Exception e) {
        e.printStackTrace();
    }
    if (isWifiNet) {//连接的WiFi
        return 1;
    } else if (isGprsNet) {//连接的数据网络
        return 2;
    } else {
        return 3;
    }
}

二、隐藏软键盘

/**
  * 隐藏软键盘
  *
  * @param activity 当前界面
  * @param editText 当前输入框
  * @return true未隐藏 false隐藏
  */
 public static boolean hideSoftInput(Activity activity, EditText editText) {
     InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
     if (imm != null) {
         return imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
     }
     return false;
 }

三、动态监测及获取权限

/**
 * 检测并获取权限
  *
  * @param activity    Activity
  * @param permission  权限名称,如Manifest.permission.READ_EXTERNAL_STORAGE
  * @param requestCode 请求码
  */
 public static void checkPermission(Activity activity, String permission, int requestCode) {
     if (Build.VERSION.SDK_INT >= 23) {//如果系统是6.0及以上则去申请
         int checkPermission = ContextCompat.checkSelfPermission(activity, permission);
         //检测是否已经申请
         if (checkPermission != PackageManager.PERMISSION_GRANTED) {
             //动态申请权限
             ActivityCompat.requestPermissions(activity, new String[]{permission}, requestCode);
         }
     }
 }

四、Bitmap转为Base64

/**
 * Bitmap转为Base64
 *
 * @param bitmap
 * @return
 */
public static String bitmapToBase64(Bitmap bitmap) {
    String result = null;
    ByteArrayOutputStream baos = null;
    try {
        if (bitmap != null) {
            baos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);

            baos.flush();
            baos.close();

            byte[] bitmapBytes = baos.toByteArray();
            result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (baos != null) {
                baos.flush();
                baos.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return result;
}

五、Base64转为Bitmap

/**
  * Base64转为Bitmap
  *
  * @param base64Data
  * @return
  */
 public static Bitmap base64ToBitmap(String base64Data) {
     byte[] bytes = Base64.decode(base64Data, Base64.DEFAULT);
     return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
 }

六、SHA1算法

/**
 * SHA1算法
 *
 * @param data
 * @return
 * @throws NoSuchAlgorithmException
 */
public static String sha1(String data) throws NoSuchAlgorithmException {
    MessageDigest md = MessageDigest.getInstance("SHA1");
    md.update(data.getBytes());
    StringBuffer buf = new StringBuffer();
    byte[] bits = md.digest();
    for (int i = 0; i < bits.length; i++) {
        int a = bits[i];
        if (a < 0) a += 256;
        if (a < 16) buf.append("0");
        buf.append(Integer.toHexString(a));
    }
    return buf.toString();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章