Android工具类一些方法函数

本文介绍了一系列Android开发中常用的实用技巧,包括检查网络连接状态、时间格式转换、显示提示信息、启动新的Activity、获取屏幕尺寸、单位换算、验证微信客户端真伪、检查存储空间以及判断特定应用是否已安装等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.检查手机网络是否可用:

public static boolean isNetworkAvailable(Activity activity) {
		Context context = activity.getApplicationContext();
		ConnectivityManager connectivityManager = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);

		if (connectivityManager == null) {
			return false;
		} else {
			NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

			if (networkInfo != null && networkInfo.length > 0) {
				for (int i = 0; i < networkInfo.length; i++) {
					if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED) {
						return true;
					}
				}
			}
		}
		return false;
	}
2.long类型时间格式变换:

public static String longToDate(String timestampString) {
		Long timestamp = Long.parseLong(timestampString) * 1000;
		String date = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
				.format(new java.util.Date(timestamp));
		return date;
	}

3.toast输出:

public static void showToast(Context ctx, String msg) {
		Toast.makeText(ctx, msg, Toast.LENGTH_SHORT).show();
	}
4.跳转Activity
public static void startAct(Context ctx, Class<?> cls) {
		Intent intent = new Intent(ctx, cls);
		ctx.startActivity(intent);
		((Activity) ctx).overridePendingTransition(R.anim.slide_in_from_right,
				R.anim.slide_out_to_left);
	}
5.获得屏幕宽度像素:

static public int getScreenWidthPixels(Context context) {
		DisplayMetrics dm = new DisplayMetrics();
		((WindowManager) context.getSystemService(Context.WINDOW_SERVICE))
				.getDefaultDisplay().getMetrics(dm);
		return dm.widthPixels;
	}
5.dip和像素的单位转换:

static public int dipToPx(Context context, int dip) {
		return (int) (dip * getScreenDensity(context) + 0.5f);
	}
6.获取屏幕密度:

static public float getScreenDensity(Context context) {
		try {
			DisplayMetrics dm = new DisplayMetrics();
			((WindowManager) context.getSystemService(Context.WINDOW_SERVICE))
					.getDefaultDisplay().getMetrics(dm);
			return dm.density;
		} catch (Exception e) {
			return DisplayMetrics.DENSITY_DEFAULT;
		}
	}
7.判断手机安装的微信是否为官方的:

/**
	 * 判断是否为官方微信
	 * 
	 * @return
	 */
	public static boolean isOfficialWx(Context context) {
		PackageInfo pi;
		try {
			pi = context.getPackageManager().getPackageInfo(
					"com.tencent.mm", PackageManager.GET_SIGNATURES);

			Signature signatures = pi.signatures[0];

			MessageDigest md = MessageDigest.getInstance("MD5");
			md.update(signatures.toByteArray());
			byte[] digest = md.digest();
			String res = toHexString(digest);
			if (WXConstants.WxMD5.equals(res)) {
				return true;
			}

		} catch (NameNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}
public static final String WxMD5 = "18:C8:67:F0:71:7A:A6:7B:2A:B7:34:75:05:BA:07:ED";
private static String toHexString(byte[] block) {
		StringBuffer buf = new StringBuffer();


		int len = block.length;


		for (int i = 0; i < len; i++) {
			byte2hex(block[i], buf);
			if (i < len - 1) {
				buf.append(":");
			}
		}
		return buf.toString();
	}
8.获取手机剩余内存是否满足条件:

/**
	 * 获取手机剩余内存是否满足条件
	 */
	public static boolean getAvailMemory() {
		if (externalMemoryAvailable()) {
			File path = Environment.getExternalStorageDirectory();
			StatFs sf = new StatFs(path.getPath());
			// 获取单个数据块的大小(Byte)
			long blockSize = sf.getBlockSize();
			// 空闲的数据块的数量
			long freeBlocks = sf.getAvailableBlocks();
			// 返回SD卡空闲大小
			long availSize2 = (freeBlocks * blockSize) / 1024; // 单位KB
			if (availSize2 > WXConstants.REMAININGMEMORY) {
				return true;
			}
		}
		return false;
	}
public static final long REMAININGMEMORY = 307200;
public static boolean externalMemoryAvailable() {
		return Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED);
	}
9.是否安装某个应用程序:

/**
	 * 是否安装应用程序
	 * 
	 * @param context
	 * @param packagename
	 * @return
	 */
	public static boolean isAppInstalled(Context context, String packagename) {
		PackageInfo packageInfo;
		try {
			packageInfo = context.getPackageManager().getPackageInfo(
					packagename, 0);
		} catch (NameNotFoundException e) {
			packageInfo = null;
			e.printStackTrace();
		}
		if (packageInfo == null) {
			// System.out.println("没有安装");
			return false;
		} else {
			// System.out.println("已经安装");
			return true;
		}
	}
10.打开某个应用程序:

/**
	 * 打开应用
	 * @param _ctx
	 * @param packagename
	 */
	public static void openApp(Context _ctx, String packagename) {
		final PackageManager pm = _ctx.getPackageManager();
		try {
			Intent i = pm.getLaunchIntentForPackage(packagename);
			if (i != null)
				_ctx.startActivity(i);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值