//36个Android开发常用代码片段
//拨打电话
public static void call(Context context, String phoneNumber) { context.startActivity( new Intent(Intent.ACTION_CALL, Uri.parse( "tel:" + phoneNumber))); } //跳转至拨号界面
public static void callDial(Context context, String phoneNumber) { context.startActivity( new Intent(Intent.ACTION_DIAL, Uri.parse( "tel:" + phoneNumber))); } //发送短信
public static void sendSms(Context context, String phoneNumber, String content) { Uri uri = Uri.parse( "smsto:" + (TextUtils.isEmpty(phoneNumber) ? "" : phoneNumber)); Intent intent = new Intent(Intent.ACTION_SENDTO, uri); intent.putExtra( "sms_body" , TextUtils.isEmpty(content) ? "" : content); context.startActivity(intent); } //唤醒屏幕并解锁
public static void wakeUpAndUnlock(Context context){ KeyguardManager km= (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); KeyguardManager.KeyguardLock kl = km.newKeyguardLock( "unLock" ); //解锁 kl.disableKeyguard(); //获取电源管理器对象 PowerManager pm=(PowerManager) context.getSystemService(Context.POWER_SERVICE); //获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "bright" ); //点亮屏幕 wl.acquire(); //释放 wl.release(); } //需要添加权限 <uses-permission android:name= "android.permission.WAKE_LOCK" /> <uses-permission android:name= "android.permission.DISABLE_KEYGUARD" /> //判断当前App处于前台还是后台状态
public static boolean isApplicationBackground( final Context context) { ActivityManager am = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); @SuppressWarnings ( "deprecation" ) List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks( 1 ); if (!tasks.isEmpty()) { ComponentName topActivity = tasks.get( 0 ).topActivity; if (!topActivity.getPackageName().equals(context.getPackageName())) { return true ; } } return false ; } //需要添加权限 &lt;uses-permission android:name= "android.permission.GET_TASKS" /> //判断当前手机是否处于锁屏(睡眠)状态
public static boolean isSleeping(Context context) { KeyguardManager kgMgr = (KeyguardManager) context .getSystemService(Context.KEYGUARD_SERVICE); boolean isSleeping = kgMgr.inKeyguardRestrictedInputMode(); return isSleeping; } //判断当前是否有网络连接
public static boolean isOnline(Context context) { ConnectivityManager manager = (ConnectivityManager) context .getSystemService(Activity.CONNECTIVITY_SERVICE); NetworkInfo info = manager.getActiveNetworkInfo(); if (info != null && info.isConnected()) { return true ; } return false ; } //判断当前是否是WIFI连接状态
public static boolean isWifiConnected(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifiNetworkInfo = connectivityManager .getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (wifiNetworkInfo.isConnected()) { return true ; } return false ; } //安装APK
public static void installApk(Context context, File file) { Intent intent = new Intent(); intent.setAction( "android.intent.action.VIEW" ); intent.addCategory( "android.intent.category.DEFAULT" ); intent.setType( "application/vnd.android.package-archive" ); intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive" ); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } //判断当前设备是否为手机
public static boolean isPhone(Context context) { TelephonyManager telephony = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); if (telephony.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) { return false ; } else { return true ; } } //获取当前设备宽高,单位px
@SuppressWarnings ( "deprecation" ) public static int getDeviceWidth(Context context) { WindowManager manager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); return manager.getDefaultDisplay().getWidth(); } @SuppressWarnings ( "deprecation" ) public static int getDeviceHeight(Context context) { WindowManager manager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); return manager.getDefaultDisplay().getHeight(); } //获取当前设备的IMEI,需要与上面的isPhone()一起使用
@TargetApi (Build.VERSION_CODES.CUPCAKE) public static String getDeviceIMEI(Context context) { String deviceId; if (isPhone(context)) { TelephonyManager telephony = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); deviceId = telephony.getDeviceId(); } else { deviceId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); } return deviceId; } //获取当前设备的MAC地址
public static String getMacAddress(Context context) { String macAddress; WifiManager wifi = (WifiManager) context .getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); macAddress = info.getMacAddress(); if ( null == macAddress) { return "" ; } macAddress = macAddress.replace( ":" , "" ); return macAddress; } //获取当前程序的版本号
public static String getAppVersion(Context context) { String version = "0" ; try { version = context.getPackageManager().getPackageInfo( context.getPackageName(), 0 ).versionName; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return version; } //收集设备信息,用于信息统计分析
public static Properties collectDeviceInfo(Context context) { Properties mDeviceCrashInfo = new Properties(); try { PackageManager pm = context.getPackageManager(); PackageInfo pi = pm.getPackageInfo(context.getPackageName(), PackageManager.GET_ACTIVITIES); if (pi != null ) { mDeviceCrashInfo.put(VERSION_NAME, pi.versionName == null ? "not set" : pi.versionName); mDeviceCrashInfo.put(VERSION_CODE, pi.versionCode); } } catch (PackageManager.NameNotFoundException e) { Log.e(TAG, "Error while collect package info" , e); } Field[] fields = Build. class .getDeclaredFields(); for (Field field : fields) { try { field.setAccessible( true ); mDeviceCrashInfo.put(field.getName(), field.get( null )); } catch (Exception e) { Log.e(TAG, "Error while collect crash info" , e); } } return mDeviceCrashInfo; } public static String collectDeviceInfoStr(Context context) { Properties prop = collectDeviceInfo(context); Set deviceInfos = prop.keySet(); StringBuilder deviceInfoStr = new StringBuilder( "{\n" ); for (Iterator iter = deviceInfos.iterator(); iter.hasNext();) { Object item = iter.next(); deviceInfoStr.append( "\t\t\t" + item + ":" + prop.get(item) + ", \n" ); } deviceInfoStr.append( "}" ); return deviceInfoStr.toString(); } //是否有SD卡
public static boolean haveSDCard() { return android.os.Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED); } //动态隐藏软键盘
@TargetApi (Build.VERSION_CODES.CUPCAKE) public static void hideSoftInput(Activity activity) { View view = activity.getWindow().peekDecorView(); if (view != null ) { InputMethodManager inputmanger = (InputMethodManager) activity .getSystemService(Context.INPUT_METHOD_SERVICE); inputmanger.hideSoftInputFromWindow(view.getWindowToken(), 0 ); } } @TargetApi (Build.VERSION_CODES.CUPCAKE) public static void hideSoftInput(Context context, EditText edit) { edit.clearFocus(); InputMethodManager inputmanger = (InputMethodManager) context .getSystemService(Context.INPUT_METHOD_SERVICE); inputmanger.hideSoftInputFromWindow(edit.getWindowToken(), 0 ); } //动态显示软键盘
@TargetApi (Build.VERSION_CODES.CUPCAKE) public static void showSoftInput(Context context, EditText edit) { edit.setFocusable( true ); edit.setFocusableInTouchMode( true ); edit.requestFocus(); InputMethodManager inputManager = (InputMethodManager) context .getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(edit, 0 ); } //动态显示或者是隐藏软键盘
@TargetApi (Build.VERSION_CODES.CUPCAKE) public static void toggleSoftInput(Context context, EditText edit) { edit.setFocusable( true ); edit.setFocusableInTouchMode( true ); edit.requestFocus(); InputMethodManager inputManager = (InputMethodManager) context .getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0 ); } //主动回到Home,后台运行
public static void goHome(Context context) { Intent mHomeIntent = new Intent(Intent.ACTION_MAIN); mHomeIntent.addCategory(Intent.CATEGORY_HOME); mHomeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); context.startActivity(mHomeIntent); } //获取状态栏高度
//注意,要在onWindowFocusChanged中调用,在onCreate中获取高度为0 @TargetApi (Build.VERSION_CODES.CUPCAKE) public static int getStatusBarHeight(Activity activity) { Rect frame = new Rect(); activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); return frame.top; } //获取状态栏高度+标题栏(ActionBar)高度
//(注意,如果没有ActionBar,那么获取的高度将和上面的是一样的,只有状态栏的高度) public static int getTopBarHeight(Activity activity) { return activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT) .getTop(); } //获取MCC+MNC代码 (SIM卡运营商国家代码和运营商网络代码)
//仅当用户已在网络注册时有效, CDMA 可能会无效(中国移动:46000 //46002, 中国联通:46001,中国电信:46003) public static String getNetworkOperator(Context context) { TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); return telephonyManager.getNetworkOperator(); } //返回移动网络运营商的名字
//(例:中国联通、中国移动、中国电信) 仅当用户已在网络注册时有效, //CDMA 可能会无效) public static String getNetworkOperatorName(Context context) { TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); return telephonyManager.getNetworkOperatorName(); } //返回移动终端类型
PHONE_TYPE_NONE :0 手机制式未知
PHONE_TYPE_GSM :1 手机制式为GSM,移动和联通
PHONE_TYPE_CDMA :2 手机制式为CDMA,电信
PHONE_TYPE_SIP:3
public static int getPhoneType(Context context) { TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); return telephonyManager.getPhoneType(); } //判断手机连接的网络类型(2G,3G,4G)
//联通的3G为UMTS或HSDPA,移动和联通的2G为GPRS或EGDE,电信的2G为CDMA,电信的3G为EVDO public class Constants { /** * Unknown network class */ public static final int NETWORK_CLASS_UNKNOWN = 0 ; /** * wifi net work */ public static final int NETWORK_WIFI = 1 ; /** * "2G" networks */ public static final int NETWORK_CLASS_2_G = 2 ; /** * "3G" networks */ public static final int NETWORK_CLASS_3_G = 3 ; /** * "4G" networks */ public static final int NETWORK_CLASS_4_G = 4 ; } public static int getNetWorkClass(Context context) { TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); switch (telephonyManager.getNetworkType()) { case TelephonyManager.NETWORK_TYPE_GPRS: case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_CDMA: case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: return Constants.NETWORK_CLASS_2_G; case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_EVDO_0: case TelephonyManager.NETWORK_TYPE_EVDO_A: case TelephonyManager.NETWORK_TYPE_HSDPA: case TelephonyManager.NETWORK_TYPE_HSUPA: case TelephonyManager.NETWORK_TYPE_HSPA: case TelephonyManager.NETWORK_TYPE_EVDO_B: case TelephonyManager.NETWORK_TYPE_EHRPD: case TelephonyManager.NETWORK_TYPE_HSPAP: return Constants.NETWORK_CLASS_3_G; case TelephonyManager.NETWORK_TYPE_LTE: return Constants.NETWORK_CLASS_4_G; default : return Constants.NETWORK_CLASS_UNKNOWN; } } //判断当前手机的网络类型(WIFI还是2,3,4G)
//需要用到上面的方法 public static int getNetWorkStatus(Context context) { int netWorkType = Constants.NETWORK_CLASS_UNKNOWN; ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isConnected()) { int type = networkInfo.getType(); if (type == ConnectivityManager.TYPE_WIFI) { netWorkType = Constants.NETWORK_WIFI; } else if (type == ConnectivityManager.TYPE_MOBILE) { netWorkType = getNetWorkClass(context); } } return netWorkType; } //px-dp转换
public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return ( int ) (dpValue * scale + 0 .5f); } public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return ( int ) (pxValue / scale + 0 .5f); } //px-sp转换
public static int px2sp(Context context, float pxValue) { final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; return ( int ) (pxValue / fontScale + 0 .5f); } public static int sp2px(Context context, float spValue) { final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; return ( int ) (spValue * fontScale + 0 .5f); } //把一个毫秒数转化成时间字符串
//格式为小时/分/秒/毫秒(如:24903600 –> 06小时55分03秒600毫秒) /** * @param millis * 要转化的毫秒数。 * @param isWhole * 是否强制全部显示小时/分/秒/毫秒。 * @param isFormat * 时间数字是否要格式化,如果true:少位数前面补全;如果false:少位数前面不补全。 * @return 返回时间字符串:小时/分/秒/毫秒的格式(如:24903600 --> 06小时55分03秒600毫秒)。 */ public static String millisToString( long millis, boolean isWhole, boolean isFormat) { String h = "" ; String m = "" ; String s = "" ; String mi = "" ; if (isWhole) { h = isFormat ? "00小时" : "0小时" ; m = isFormat ? "00分" : "0分" ; s = isFormat ? "00秒" : "0秒" ; mi = isFormat ? "00毫秒" : "0毫秒" ; } long temp = millis; long hper = 60 * 60 * 1000 ; long mper = 60 * 1000 ; long sper = 1000 ; if (temp / hper > 0 ) { if (isFormat) { h = temp / hper < 10 ? "0" + temp / hper : temp / hper + "" ; } else { h = temp / hper + "" ; } h += "小时" ; } temp = temp % hper; if (temp / mper > 0 ) { if (isFormat) { m = temp / mper < 10 ? "0" + temp / mper : temp / mper + "" ; } else { m = temp / mper + "" ; } m += "分" ; } temp = temp % mper; if (temp / sper > 0 ) { if (isFormat) { s = temp / sper < 10 ? "0" + temp / sper : temp / sper + "" ; } else { s = temp / sper + "" ; } s += "秒" ; } temp = temp % sper; mi = temp + "" ; if (isFormat) { if (temp < 100 && temp >= 10 ) { mi = "0" + temp; } if (temp < 10 ) { mi = "00" + temp; } } mi += "毫秒" ; return h + m + s + mi; } 格式为小时/分/秒/毫秒(如:24903600 –> 06小时55分03秒)。 /** * * @param millis * 要转化的毫秒数。 * @param isWhole * 是否强制全部显示小时/分/秒/毫秒。 * @param isFormat * 时间数字是否要格式化,如果true:少位数前面补全;如果false:少位数前面不补全。 * @return 返回时间字符串:小时/分/秒/毫秒的格式(如:24903600 --> 06小时55分03秒)。 */ public static String millisToStringMiddle( long millis, boolean isWhole, boolean isFormat) { return millisToStringMiddle(millis, isWhole, isFormat, "小时" , "分钟" , "秒" ); } public static String millisToStringMiddle( long millis, boolean isWhole, boolean isFormat, String hUnit, String mUnit, String sUnit) { String h = "" ; String m = "" ; String s = "" ; if (isWhole) { h = isFormat ? "00" + hUnit : "0" + hUnit; m = isFormat ? "00" + mUnit : "0" + mUnit; s = isFormat ? "00" + sUnit : "0" + sUnit; } long temp = millis; long hper = 60 * 60 * 1000 ; long mper = 60 * 1000 ; long sper = 1000 ; if (temp / hper > 0 ) { if (isFormat) { h = temp / hper < 10 ? "0" + temp / hper : temp / hper + "" ; } else { h = temp / hper + "" ; }

36个Android开发常用代码片段的更多相关文章

  1. Android开发常用代码片段

    拨打电话 public static void call(Context context, String phoneNumber) { context.startActivity( new Inten ...

  2. Android 中常用代码片段

    一:AsyncTask 的使用 (1)activity_main.xml <TextView android:id="@+id/tvInfo" android:layout_ ...

  3. swift开发常用代码片段

    // 绑定事件 cell.privacySwitch.addTarget(self, action: #selector(RSMeSettingPrivacyViewController.switch ...

  4. 转--Android实用的代码片段 常用代码总结

    这篇文章主要介绍了Android实用的代码片段 常用代码总结,需要的朋友可以参考下     1:查看是否有存储卡插入 复制代码 代码如下: String status=Environment.getE ...

  5. 转发—Android开发常用的插件及工具

    作者:蓝之风 出处:http://www.cnblogs.com/vaiyanzi/ Android开发常用的插件及工具 1.GitHub,这个不管是做安卓还是其他,只要是开发就必上的网站,也是天朝没 ...

  6. Android开发常用工具汇总

    Android开发常用工具汇总,本文章不断更新完善 一.数据库小工具Sqlite Developer  SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的, ...

  7. C#常用代码片段备忘

    以下是从visual studio中整理出来的常用代码片段,以作备忘 快捷键: eh 用途: 类中事件实现函数模板 private void MyMethod(object sender, Event ...

  8. Android开发常用开源框架:图片处理

    https://blog.csdn.net/SGQ_CSDN/article/details/79910709 Android开发常用开源框架:图片处理 框架名称 功能描述 Android Unive ...

  9. Vue3.0常用代码片段和开发插件

    Vue3 Snippets for Visual Studio Code Vue3 Snippets源码 Vue3 Snippets下载 This extension adds Vue3 Code S ...

随机推荐

  1. BTSync 2.0 Vs. 1.4 Folders

    Sync 2.0 supports boths new 2.0 folders and classic 1.4 folders, s o when you upgrade your Sync it w ...

  2. [转载]Unity3D游戏引擎最详尽基础教程

    原文地址:Unity3D游戏引擎最详尽基础教程作者:ShangShang 我一直向所有想做游戏的朋友推荐Unity3D,为什么呢?首先是因为专业,Unity3D非常强大,用它创建一个类似MiniGor ...

  3. VC6 下 libpng 库的编译与初步使用

      VC6 下 libpng 库的编译与初步使用 目录 libong 库的介绍 VC6 下 libpng 的编译 下载 libpng 与 zlib 进行编译 得到 .lib 文件 初步使用 对 VC6 ...

  4. ArcEngine 连接sql server sde

    前言 本想在soe中进行sde for sqlserver数据获取.由于soe的调试不方便,为了测试的简便,先在桌面上写了个arcengine连接sde for sqlserver的程序,但是本以为是 ...

  5. JSON.parse()和jQuery.parseJSON()的区别

    jQuery.parseJSON(jsonString) : 将格式完好的JSON字符串转为与之对应的JavaScript对象   (jquery 方法) 1 2 3 var str = '[{&qu ...

  6. 安装在virtualbox中的kali linux如何配置无线网卡

    1.安装在virtualbox里的kali无法使用所在物理机的wifi 2.必须通过usb方式,如图所示 3.所使用的usb无线网卡必须是kali2.0支持的 4.我的型号是TL-WN823N 2.0 ...

  7. 【Burnside定理】&【Pólya定理】

    Burnside & Pólya (详细内容请参阅<组合数学>或2008年cyx的论文,这里只写一些我学习的时候理解困难的几个点,觉得我SB的请轻鄙视……如果有觉得不科学的地方欢迎 ...

  8. spark读取 kafka nginx网站日志消息 并写入HDFS中(转)

    原文链接:spark读取 kafka nginx网站日志消息 并写入HDFS中 spark 版本为1.0 kafka 版本为0.8 首先来看看kafka的架构图 详细了解请参考官方 我这边有三台机器用 ...

  9. vue设置多入口教程

    官方脚手架搭建vue项目 在src 目录下复制app内容创建test.vue,demo.vue, main.js复制main.js内容demo.js,test.js,修改一下内容 在根目录下创建tes ...

  10. VMware vCenter中, 如何辩认虚机上Raw Device Mapping过了的一块物理磁盘?

    比如说, 我们有一套VMware的环境, 其中有一台运行者ESXi的主机, 其上有十块SAS盘. 这十块盘中的五块盘被RDM到一台虚机上了. 假设你发现有添加多了一块盘, 你想移除掉, 但是5块盘其中 ...