Android(安卓)- 判断当前网络环境、隐藏软键盘、动态监测及获取权限、Bitmap与Base64互转、SHA1算法
16lz
2021-01-26
转载请注明出处: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();}
更多相关文章
- Android软键盘一些处理
- 安装 apk 到 /system/app 目录下
- Android(安卓)O 8.0及其以上系统的通知(Notification)、安装apk
- Ionic Cordova实现软键盘的监听 以及操作大全
- Android(安卓)6.0 中新的新技术
- Android(安卓)6.0 动态权限 java反射
- Android权限管理之RxPermission解决Android(安卓)6.0 适配问题
- 手机拨号启动隐藏程序
- Android(安卓)已申请权限仍然提示 open failed: EACCES (Permiss