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.其他待补充

 

 

目录
相关文章
|
4月前
|
存储 Shell Android开发
基于Android P,自定义Android开机动画的方法
本文详细介绍了基于Android P系统自定义开机动画的步骤,包括动画文件结构、脚本编写、ZIP打包方法以及如何将自定义动画集成到AOSP源码中。
82 2
基于Android P,自定义Android开机动画的方法
|
4月前
|
Android开发
基于android-11.0.0_r39,系统应用的手动签名方法和过程
本文介绍了基于Android 11.0.0_r39版本进行系统应用手动签名的方法和解决签名过程中遇到的错误,包括处理`no conscrypt_openjdk_jni-linux-x86_64`和`RegisterNatives failed`的问题。
200 2
|
2月前
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
67 15
Android 系统缓存扫描与清理方法分析
|
19天前
|
前端开发 数据处理 Android开发
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
40 8
|
3月前
|
ARouter 测试技术 API
Android经典面试题之组件化原理、优缺点、实现方法?
本文介绍了组件化在Android开发中的应用,详细阐述了其原理、优缺点及实现方式,包括模块化、接口编程、依赖注入、路由机制等内容,并提供了具体代码示例。
49 2
|
4月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
65 1
|
4月前
|
Android开发
Android在rootdir根目录创建自定义目录和挂载点的方法
本文介绍了在Android高通平台的根目录下创建自定义目录和挂载点的方法,通过修改Android.mk文件并使用`LOCAL_POST_INSTALL_CMD`变量在编译过程中添加目录,最终在ramdisk.img的系统根路径下成功创建了`/factory/bin`目录。
230 1
|
4月前
|
开发工具 uml git
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
本文分享了下载AOSP源码的方法,包括如何使用repo工具和处理常见的repo sync错误,以及配置Python环境以确保顺利同步特定版本的AOSP代码。
538 0
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
|
5月前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异性:平台、工具和用户体验的对比分析
【7月更文挑战第30天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据着不可忽视的地位。本文将深入探讨这两大平台在开发环境、工具选择以及最终用户体验上的根本差异,并分析这些差异如何影响开发者的策略和用户的偏好。通过比较安卓的开放性与iOS的封闭性,我们将揭示不同平台下的开发哲学及其对生态系统的影响。
48 4
|
4月前
|
Android开发
Android项目架构设计问题之onFirstItemVisibleChanged方法的调用如何解决
Android项目架构设计问题之onFirstItemVisibleChanged方法的调用如何解决
41 0