android 几个工具方法

简介: 集合几个工具方法,方便以后使用。 1.获取手机 分辨率屏幕: public static void printScreenInfor(Context context){ DisplayMetrics displayMetrics = context.

集合几个工具方法,方便以后使用。

1.获取手机 分辨率屏幕:

public static void printScreenInfor(Context context){

        DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();

        int width = displayMetrics.widthPixels;
        int height = displayMetrics.heightPixels;

        float density = displayMetrics.density;
        float scaledDensity = displayMetrics.scaledDensity;

        Log.d(null, String.format("screen info: width = %d, height = %d, density = %f , scaledDensity = %f ", width, height, density, scaledDensity));
    }

2.获取手机 密度

 1   public static double getDensity(Activity context) {
 2         DisplayMetrics displaysMetrics = new DisplayMetrics();
 3         if(context == null ){
 4             LogHelper.e(LogHelper.APPUTIL, "传入的应为activity");
 5             return 0;
 6         }
 7         context.getWindowManager().getDefaultDisplay().getMetrics(displaysMetrics);
 8         float density = displaysMetrics.scaledDensity;
 9 
10         return density;
11     }

3.获取手机的dp和px转化:

public static int dip2px(Context context, float dipValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dipValue * scale + 0.5f);
    }

 public static int px2dip(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

4.获取手机真实的物理尺寸

 public static double getScreenPhysicalSize(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));
         return diagonalPixels / (160 * dm.density);
     }

5.判断手机是否是平板

1   public static boolean isTablet(Context context) {
2         return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE;
3     }

 

6.获取手机的编译版本 制造厂商等

1 String osVersion = android.os.Build.VERSION.SDK;//编译版本
2 String model = Build.MODEL;//手机品牌
3 String manufacture = Build.manufacture;//
4 String cpu = Build.cpu_ABI;

7.获取手机mac地址等

1 public String getLocalMacAddress() {   
2         WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);   
3         WifiInfo info = wifi.getConnectionInfo();   
4         return info.getMacAddress();   
5     }  

8.判断是有网络

 1 public static boolean isNetworkAvailable(Context context) {
 2         boolean flag = false;
 3         if (context != null) {
 4             ConnectivityManager connMgr = (ConnectivityManager) context
 5                     .getSystemService(Context.CONNECTIVITY_SERVICE);
 6             NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
 7             if (networkInfo != null && networkInfo.isConnected()) {
 8                 flag = true;
 9             }
10         }
11         return flag;
12     }

9.其他待补充

 

 

目录
相关文章
|
24天前
|
存储 Shell Android开发
基于Android P,自定义Android开机动画的方法
本文详细介绍了基于Android P系统自定义开机动画的步骤,包括动画文件结构、脚本编写、ZIP打包方法以及如何将自定义动画集成到AOSP源码中。
42 2
基于Android P,自定义Android开机动画的方法
|
24天前
|
Android开发
基于android-11.0.0_r39,系统应用的手动签名方法和过程
本文介绍了基于Android 11.0.0_r39版本进行系统应用手动签名的方法和解决签名过程中遇到的错误,包括处理`no conscrypt_openjdk_jni-linux-x86_64`和`RegisterNatives failed`的问题。
67 2
|
23天前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
31 1
|
24天前
|
Android开发
Android在rootdir根目录创建自定义目录和挂载点的方法
本文介绍了在Android高通平台的根目录下创建自定义目录和挂载点的方法,通过修改Android.mk文件并使用`LOCAL_POST_INSTALL_CMD`变量在编译过程中添加目录,最终在ramdisk.img的系统根路径下成功创建了`/factory/bin`目录。
49 1
|
24天前
|
开发工具 uml git
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
本文分享了下载AOSP源码的方法,包括如何使用repo工具和处理常见的repo sync错误,以及配置Python环境以确保顺利同步特定版本的AOSP代码。
132 0
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
|
2月前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异性:平台、工具和用户体验的对比分析
【7月更文挑战第30天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据着不可忽视的地位。本文将深入探讨这两大平台在开发环境、工具选择以及最终用户体验上的根本差异,并分析这些差异如何影响开发者的策略和用户的偏好。通过比较安卓的开放性与iOS的封闭性,我们将揭示不同平台下的开发哲学及其对生态系统的影响。
35 4
|
30天前
|
Android开发
Android项目架构设计问题之onFirstItemVisibleChanged方法的调用如何解决
Android项目架构设计问题之onFirstItemVisibleChanged方法的调用如何解决
28 0
|
30天前
|
Java 测试技术 Android开发
Android项目架构设计问题之使用反射调用类的私有方法如何解决
Android项目架构设计问题之使用反射调用类的私有方法如何解决
14 0
|
2月前
|
开发工具 Android开发 数据安全/隐私保护
探索iOS与安卓应用开发的异同:技术、工具和市场趋势
在移动操作系统的广阔舞台上,iOS和安卓两大主角各自演绎着怎样的精彩?本文将深入剖析这两大平台在应用开发过程中的技术差异、开发工具的选择以及面对的市场环境。通过数据支撑和案例分析,我们将一窥这两个系统如何影响开发者的决策,并探讨它们未来的发展方向。
|
1月前
|
API 调度 Android开发
Android经典实战之处理后台任务的2个工具
本文介绍Android后台任务管理,涵盖WorkManager与JobScheduler的使用方法及区别。WorkManager属Jetpack库,确保任务可靠执行,支持延迟与条件依赖。JobScheduler则针对特定条件下的任务调度,如网络类型。两者各有优势,WorkManager适用于多数场景。
24 0