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();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章