【Android】Android工具函数整理
来源:互联网 发布:知乎suck for living 编辑:程序博客网 时间:2024/05/22 17:30
import android.app.Activity;import android.app.ActivityManager;import android.app.KeyguardManager;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.pm.PackageManager;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.net.Uri;import android.os.PowerManager;import android.telephony.TelephonyManager;import android.text.TextUtils;import android.util.DisplayMetrics;import android.util.TypedValue;import android.view.inputmethod.InputMethodManager;import android.widget.EditText;import java.io.File;import java.util.List;/** * Created by chad on 11/8/2015. */public class MineUtil { /** * 发送短信 * * @param context * @param phoneNumber * @param content */ 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); } /** * 点亮屏幕然后解锁,需要权限:android.permission.DISABLE_KEYGUARD, * android:name="android.permission.WAKE_LOCK" * * @param context */ 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(); } /** * 判断当前程序是否在前台,需要权限:android:name="android.permission.GET_TASKS" * * @param context * @return */ 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; } /** * 有木有链接wifi * * @param context * @return */ 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 * * @param context * @param file */ 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); } /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 根据手机的分辨率从 px 转成为 dp */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } /** * 根据手机的分辨率从 dp 转成为 px */ public static int dp2px(Context context, int dp) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); } /** * 获取手机屏幕高度 * * @param context * @return */ public static int getScreenHeight(Activity context) { DisplayMetrics dm = new DisplayMetrics(); context.getWindowManager().getDefaultDisplay().getMetrics(dm); return dm.heightPixels; } /** * 获取手机屏幕宽度 * * @param context * @return */ public static int getScreenWidth(Activity context) { DisplayMetrics dm = new DisplayMetrics(); context.getWindowManager().getDefaultDisplay().getMetrics(dm); return dm.widthPixels; } /** * 获取状态栏高度 * * @param context * @return */ public static int getStatusHeight(Context context) { int result = 0; int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { result = context.getResources().getDimensionPixelSize(resourceId); } return result; } /** * 拨打电话,,需要权限:android.permission.CALL_PHONE * * @param context * @param phoneNumber */ public static void call(Context context, String phoneNumber) { context.startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber))); } /** * 跳转到拨号界面 * * @param context * @param phoneNumber */ public static void callDial(Context context, String phoneNumber) { context.startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNumber))); } /** * 隐藏键盘 * * @param context * @param edit */ public static void hideSoftKeyBoard(Context context, EditText edit) { InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edit.getWindowToken(), 0); } /** * 显示键盘 * * @param context * @param edit */ public static void showSoftKeyBoard(Context context, EditText edit) { InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(edit, InputMethodManager.RESULT_SHOWN); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); } /** * 获取Imei号码 * @param context * @return */ public static String getIMEI(Context context) { String deviceId; TelephonyManager telephony = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); deviceId = telephony.getDeviceId(); return deviceId; } /** * 获取app的版本号 * @param context * @return */ 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; } /** * 当前手机是否处于睡眠状态 * * @param context * @return */ public static boolean isSleeping(Context context) { KeyguardManager kgMgr = (KeyguardManager) context .getSystemService(Context.KEYGUARD_SERVICE); boolean isSleeping = kgMgr.inKeyguardRestrictedInputMode(); return isSleeping; } /** * 能否联网 * * @param context * @return */ public static boolean isNetAvaliable(Context context) { ConnectivityManager manager = (ConnectivityManager) context .getSystemService(Activity.CONNECTIVITY_SERVICE); NetworkInfo info = manager.getActiveNetworkInfo(); if (info != null && info.isConnected()) { return true; } return false; } /** * 将px值转换为sp值,保证文字大小不变 * * @param pxValue (DisplayMetrics类中属性scaledDensity) * @return */ public static int px2sp(Context context, float pxValue) { final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; return (int) (pxValue / fontScale + 0.5f); } /** * 将sp值转换为px值,保证文字大小不变 * * @param spValue (DisplayMetrics类中属性scaledDensity) * @return */ public static int sp2px(Context context, float spValue) { final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; return (int) (spValue * fontScale + 0.5f); }<br style="font-family: monospace; white-space: pre; background-color: rgb(240, 240, 240);" /> /** * 有木有SD卡 * @return */ public static boolean withSDCard() { return android.os.Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED); } /** * 回到launcher界面,相当于点击home键 * @param context */ public static void RedirectToHomeFace(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); }}
/** * 判断是否是 Tablet(来自知乎用户面条的回答) * * @param activity Activity * @return true, if is tablet device */public static boolean isTablet(Activity activity) { DisplayMetrics dm = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(dm); double diagonalPixels = Math.sqrt(Math.pow(dm.widthPixels, 2) + Math.pow(dm.heightPixels, 2)); double screenSize = diagonalPixels / (160 * dm.density); return screenSize >= 6.0D;}
1 0
- 【Android】Android工具函数整理
- Android 开发工具整理
- Android工具类整理
- Android开源工具整理
- android工具类库整理
- Android 图片工具类整理
- Android调试工具 —— MAT [整理]
- 【Android】报表、线图、饼图、柱状图 (工具整理)
- 【Android】报表、线图、饼图、柱状图 (工具整理)
- Android调试工具 —— MAT [整理]
- 【Android】报表、线图、饼图、柱状图 (工具整理)
- 【Android】报表、线图、饼图、柱状图 (工具整理)
- Android调试工具 —— MAT [整理]
- 【Android】报表、线图、饼图、柱状图 (工具整理)
- Android调试工具 —— MAT [整理]
- Android漏洞挖掘工具收集与整理
- Android开发工具网站整理--持续更新
- Android自动生成代码工具整理
- 线段树 (区间更新求和)
- C++实现广义表
- Linux基础学习(二)-用户及文件权限管理
- 总是想把Linux服务器上的重要文件备份到本地,在此转一篇实现windows和linux互传文件的文章
- etcd:从应用场景到实现原理的全方位解读
- 【Android】Android工具函数整理
- 接口和抽象类有什么区别
- 复制对象
- HDU 4127 Flood-it!(IDA*搜索)
- API Guides > Contacts Provider (三)
- 蓝桥杯练手之数字游戏
- 最大乘积(Maximum Product,UVA 11059)
- 多图技术贴:深入浅出解析大数据平台架构
- 并查集