一些自己整理实用代码

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tianshuai4317618/article/details/77374802

开发中会用到一些测试代码,或者一些辅助用的代码,我把自己用到的整理在下面。

	// TODO: 2017/4/25 测试使用,用完即删。测试屏幕分辨率
	DisplayMetrics metric = new DisplayMetrics();
	getWindowManager().getDefaultDisplay().getMetrics(metric);
	int width = metric.widthPixels;  // 屏幕宽度(像素)
	int height = metric.heightPixels;  // 屏幕高度(像素)
	float density = metric.density;  // 屏幕密度(0.75 / 1.0 / 1.5)
	int densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)
    	Log.e("xnm", "width = " + width + ", height = " + height);
    	Log.e("xnm", "density = " + density + ", densityDpi = " + densityDpi);

新接手一个项目不知道界面在哪个类里。 查看当前Activity :adb shell "dumpsys window w | grep name="

硬编码是很差的习惯,如何找到整个项目中的硬编码。 ^((?!(\*|//)).)+[\u4e00-\u9fa5]打开全局搜索,还要把搜索框的Regular Expression 打勾选中。

网络请求的时候,判断网络状态的代码。

A 判断是否有网络:

public static boolean isNetworkAvailable(Context context) {
   ConnectivityManager connectivity = (ConnectivityManager)
               context.getSystemService(Context.CONNECTIVITY_SERVICE);
   if (connectivity == null) {
      Log.d(TAG, "couldn't get connectivity manager");
   } else {
      NetworkInfo info = connectivity.getActiveNetworkInfo();
      if (info != null) {
         if (info.getState() == NetworkInfo.State.CONNECTED) {
            Log.d(TAG, "network is available");
            return true;
         }
      }
   }
   Log.d(TAG, "network is not available");
   return false;
}


B 判断是否有wifi:

public static boolean checkWifiConnected(Context context) {
    boolean connected = false;
    try {
        ConnectivityManager connectivityManager = (ConnectivityManager) 
                context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo wifiNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        if (wifiNetInfo != null) {
            connected = (wifiNetInfo.getState() == NetworkInfo.State.CONNECTED);
        }
    } catch (Exception ignored) {
    }

    return connected;
}

C 如果判断当前是移动网络,只需要先判断是否有网络,再判断是否为wifi即可。这里就不举例了。


最近又碰到了一个需求,获取用户安装在手机中的软件。(这里友情提醒一句,如果是上架谷歌商店的,如果项目经理/产品经理/老板,让你加这个功能。

请和他们说,一旦上了这个功能,我们的产品就会被谷歌下架,估计只要是个正常人就不会让你继续加了)

下面直接上代码,很简单,复制下面代码,调用这个方法就可以了。

public static String scanLocalInstallAppList(Context context) {
    PackageManager packageManager = context.getPackageManager();

    JSONArray ja = new JSONArray();
    try {
        List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);

        for (PackageInfo packageInfo : packageInfos) {

            //暂时过滤系统应用
            if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0 ||
                    (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
                continue;
            }

            ja.put(packageInfo.applicationInfo.loadLabel(packageManager).toString());

        }
    } catch (Exception e) {
    }

    if (ja.length() > 0) {
        return ja.toString();
    }
    return "";
}

设置页面常量。

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);


展开阅读全文

没有更多推荐了,返回首页