写点什么

android 快速开发 -- 常用 utils 类,androidstudio 期末项目

作者:嘟嘟侠客
  • 2021 年 11 月 27 日
  • 本文字数:10306 字

    阅读完需:约 34 分钟

  1. ????????{??

  2. ????????????editor.putLong(key,?(Long)?object);??

  3. ????????}?else??

  4. ????????{??

  5. ????????????editor.putString(key,?object.toString());??

  6. ????????}??

  7. ????????SharedPreferencesCompat.apply(editor);??

  8. ????}??

  9. ????/**?

  10. ?????*?得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值?

  11. ?????*??

  12. ?????*?@param?context?

  13. ?????*?@param?key?

  14. ?????*?@param?defaultObject?

  15. ?????*?@return?

  16. ?????*/??

  17. ????public?static?Object?get(Context?context,?String?key,?Object?defaultObject)??

  18. ????{??

  19. ????????SharedPreferences?sp?=?context.getSharedPreferences(FILE_NAME,??

  20. ????????????????Context.MODE_PRIVATE);??

  21. ????????if?(defaultObject?instanceof?String)??

  22. ????????{??

  23. ????????????return?sp.getString(key,?(String)?defaultObject);??

  24. ????????}?else?if?(defaultObject?instanceof?Integer)??

  25. ????????{??

  26. ????????????return?sp.getInt(key,?(Integer)?defaultObject);??

  27. ????????}?else?if?(defaultObject?instanceof?Boolean)??

  28. ????????{??

  29. ????????????return?sp.getBoolean(key,?(Boolean)?defaultObject);??

  30. ????????}?else?if?(defaultObject?instanceof?Float)??

  31. ????????{??

  32. ????????????return?sp.getFloat(key,?(Float)?defaultObject);??

  33. ????????}?else?if?(defaultObject?instanceof?Long)??

  34. ????????{??

  35. ????????????return?sp.getLong(key,?(Long)?defaultObject);??

  36. ????????}??

  37. ????????return?null;??

  38. ????}??

  39. ????/**?

  40. ?????*?移除某个 key 值已经对应的值?

  41. ?????*?@param?context?

  42. ?????*?@param?key?

  43. ?????*/??

  44. ????public?static?void?remove(Context?context,?String?key)??

  45. ????{??

  46. ????????SharedPreferences?sp?=?context.getSharedPreferences(FILE_NAME,??

  47. ????????????????Context.MODE_PRIVATE);??

  48. ????????SharedPreferences.Editor?editor?=?sp.edit();??

  49. ????????editor.remove(key);??

  50. ????????SharedPreferencesCompat.apply(editor);??

  51. ????}??

  52. ????/**?

  53. ?????*?清除所有数据?

  54. ?????*?@param?context?

  55. ?????*/??

  56. ????public?static?void?clear(Context?context)??

  57. ????{??

  58. ????????SharedPreferences?sp?=?context.getSharedPreferences(FILE_NAME,??

  59. ????????????????Context.MODE_PRIVATE);??

  60. ????????SharedPreferences.Editor?editor?=?sp.edit();??

  61. ????????editor.clear();??

  62. ????????SharedPreferencesCompat.apply(editor);??

  63. ????}??

  64. ????/**?

  65. ?????*?查询某个 key 是否已经存在?

  66. ?????*?@param?context?

  67. ?????*?@param?key?

  68. ?????*?@return?

  69. ?????*/??

  70. ????public?static?boolean?contains(Context?context,?String?key)??

  71. ????{??

  72. ????????SharedPreferences?sp?=?context.getSharedPreferences(FILE_NAME,??

  73. ????????????????Context.MODE_PRIVATE);??

  74. ????????return?sp.contains(key);??

  75. ????}??

  76. ????/**?

  77. ?????*?返回所有的键值对?

  78. ?????*??

  79. ?????*?@param?context?

  80. ?????*?@return?

  81. ?????*/??

  82. ????public?static?Map<String,??>?getAll(Context?context)??

  83. ????{??

  84. ????????SharedPreferences?sp?=?context.getSharedPreferences(FILE_NAME,??

  85. ????????????????Context.MODE_PRIVATE);??

  86. ????????return?sp.getAll();??

  87. ????}??

  88. ????/**?

  89. ?????*?创建一个解决 SharedPreferencesCompat.apply 方法的一个兼容类?

  90. ?????*??

  91. ?????*?@author?zhy?

  92. ?????*??

  93. ?????*/??

  94. ????private?static?class?SharedPreferencesCompat??

  95. ????{??

  96. ????????private?static?final?Method?sApplyMethod?=?findApplyMethod();??

  97. ????????/**?

  98. ?????????*?反射查找 apply 的方法?

  99. ?????????*??

  100. ?????????*?@return?

  101. ?????????*/??

  102. ????????@SuppressWarnings({?"unchecked",?"rawtypes"?})??

  103. ????????private?static?Method?findApplyMethod()??

  104. ????????{??

  105. ????????????try??

  106. ????????????{??

  107. ????????????????Class?clz?=?SharedPreferences.Editor.class;??

  108. ????????????????return?clz.getMethod("apply");??

  109. ????????????}?catch?(NoSuchMethodException?e)??

  110. ????????????{??

  111. ????????????}??

  112. ????????????return?null;??

  113. ????????}??

  114. ????????/**?

  115. ?????????*?如果找到则使用 apply 执行,否则使用 commit?

  116. ?????????*??

  117. ?????????*?@param?editor?

  118. ?????????*/??

  119. ????????public?static?void?apply(SharedPreferences.Editor?editor)??

  120. ????????{??

  121. ????????????try??

  122. ????????????{??

  123. ????????????????if?(sApplyMethod?!=?null)??

  124. ????????????????{??

  125. ????????????????????sApplyMethod.invoke(editor);??

  126. ????????????????????return;??

  127. ????????????????}??

  128. ????????????}?catch?(IllegalArgumentException?e)??

  129. ????????????{??

  130. ????????????}?catch?(IllegalAccessException?e)??

  131. ????????????{??

  132. ????????????}?catch?(InvocationTargetException?e)??

  133. ????????????{??

  134. ????????????}??

  135. ????????????editor.commit();??

  136. ????????}??

  137. ????}??

  138. }??


对 SharedPreference 的使用做了建议的封装,对外公布出 put,get,remove,clear 等等方法;


注意一点,里面所有的 commit 操作使用了 SharedPreferencesCompat.apply 进行了替代,目的是尽可能的使用 apply 代替 commit


首先说下为什么,因为 commit 方法是同步的,并且我们很多时候的 commit 操作都是 UI 线程中,毕竟是 IO 操作,尽可能异步;


所以我们使用 apply 进行替代,apply 异步的进行写入;


但是 apply 相当于 commit 来说是 new API 呢,为了更好的兼容,我们做了适配;


SharedPreferencesCompat 也可以给大家创建兼容类提供了一定的参考~~


4、单位转换类?DensityUtils


==================================================================================


[java]? view plain copy




  1. package?com.zhy.utils;??

  2. import?android.content.Context;??

  3. import?android.util.TypedValue;??

  4. /**?

  5. ?*?常用单位转换的辅助类?

  6. ?*??

  7. ?*??

  8. ?*??

  9. ?*/??

  10. public?class?DensityUtils??

  11. {??

  12. ????private?DensityUtils()??

  13. ????{??

  14. ????????/*?cannot?be?instantiated?*/??

  15. ????????throw?new?UnsupportedOperationException("cannot?be?instantiated");??

  16. ????}??

  17. ????/**?

  18. ?????*?dp 转 px?

  19. ?????*??

  20. ?????*?@param?context?

  21. ?????*?@param?val?

  22. ?????*?@return?

  23. ?????*/??

  24. ????public?static?int?dp2px(Context?context,?float?dpVal)??

  25. ????{??

  26. ????????return?(int)?TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,??

  27. ????????????????dpVal,?context.getResources().getDisplayMetrics());??

  28. ????}??

  29. ????/**?

  30. ?????*?sp 转 px?

  31. ?????*??

  32. ?????*?@param?context?

  33. ?????*?@param?val?

  34. ?????*?@return?

  35. ?????*/??

  36. ????public?static?int?sp2px(Context?context,?float?spVal)??

  37. ????{??

  38. ????????return?(int)?TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,??

  39. ????????????????spVal,?context.getResources().getDisplayMetrics());??

  40. ????}??

  41. ????/**?

  42. ?????*?px 转 dp?

  43. ?????*??

  44. ?????*?@param?context?

  45. ?????*?@param?pxVal?

  46. ?????*?@return?

  47. ?????*/??

  48. ????public?static?float?px2dp(Context?context,?float?pxVal)??

  49. ????{??

  50. ????????final?float?scale?=?context.getResources().getDisplayMetrics().density;??

  51. ????????return?(pxVal?/?scale);??

  52. ????}??

  53. ????/**?

  54. ?????*?px 转 sp?

  55. ?????*??

  56. ?????*?@param?fontScale?

  57. ?????*?@param?pxVal?

  58. ?????*?@return?

  59. ?????*/??

  60. ????public?static?float?px2sp(Context?context,?float?pxVal)??

  61. ????{??

  62. ????????return?(pxVal?/?context.getResources().getDisplayMetrics().scaledDensity);??

  63. ????}??

  64. }??


5、SD 卡相关辅助类?SDCardUtils


====================================================================================


[java]? view plain copy




  1. package?com.zhy.utils;??

  2. import?java.io.File;??

  3. import?android.os.Environment;??

  4. import?android.os.StatFs;??

  5. /**?

  6. ?*?SD 卡相关的辅助类?

  7. ?*??

  8. ?*??

  9. ?*??

  10. ?*/??

  11. public?class?SDCardUtils??

  12. {??

  13. ????private?SDCardUtils()??

  14. ????{??

  15. ????????/*?cannot?be?instantiated?*/??

  16. ????????throw?new?UnsupportedOperationException("cannot?be?instantiated");??

  17. ????}??

  18. ????/**?

  19. ?????*?判断 SDCard 是否可用?

  20. ?????*??

  21. ?????*?@return?

  22. ?????*/??

  23. ????public?static?boolean?isSDCardEnable()??

  24. ????{??

  25. ????????return?Environment.getExternalStorageState().equals(??

  26. ????????????????Environment.MEDIA_MOUNTED);??

  27. ????}??

  28. ????/**?

  29. ?????*?获取 SD 卡路径?

  30. ?????*??

  31. ?????*?@return?

  32. ?????*/??

  33. ????public?static?String?getSDCardPath()??

  34. ????{??

  35. ????????return?Environment.getExternalStorageDirectory().getAbsolutePath()??

  36. ????????????????+?File.separator;??

  37. ????}??

  38. ????/**?

  39. ?????*?获取 SD 卡的剩余容量?单位 byte?

  40. ?????*??

  41. ?????*?@return?

  42. ?????*/??

  43. ????public?static?long?getSDCardAllSize()??

  44. ????{??

  45. ????????if?(isSDCardEnable())??

  46. ????????{??

  47. ????????????StatFs?stat?=?new?StatFs(getSDCardPath());??

  48. ????????????//?获取空闲的数据块的数量??

  49. ????????????long?availableBlocks?=?(long)?stat.getAvailableBlocks()?-?4;??

  50. ????????????//?获取单个数据块的大小(byte)??

  51. ????????????long?freeBlocks?=?stat.getAvailableBlocks();??

  52. ????????????return?freeBlocks?*?availableBlocks;??

  53. ????????}??

  54. ????????return?0;??

  55. ????}??

  56. ????/**?

  57. ?????*?获取指定路径所在空间的剩余可用容量字节数,单位 byte?

  58. ?????*??

  59. ?????*?@param?filePath?

  60. ?????*?@return?容量字节?SDCard 可用空间,内部存储可用空间?

  61. ?????*/??

  62. ????public?static?long?getFreeBytes(String?filePath)??

  63. ????{??

  64. ????????//?如果是 sd 卡的下的路径,则获取 sd 卡可用容量??

  65. ????????if?(filePath.startsWith(getSDCardPath()))??

  66. ????????{??

  67. ????????????filePath?=?getSDCardPath();??

  68. ????????}?else??

  69. ????????{//?如果是内部存储的路径,则获取内存存储的可用容量??

  70. ????????????filePath?=?Environment.getDataDirectory().getAbsolutePath();??

  71. ????????}??

  72. ????????StatFs?stat?=?new?StatFs(filePath);??

  73. ????????long?availableBlocks?=?(long)?stat.getAvailableBlocks()?-?4;??

  74. ????????return?stat.getBlockSize()?*?availableBlocks;??

  75. ????}??

  76. ????/**?

  77. ?????*?获取系统存储路径?

  78. ?????*??

  79. ?????*?@return?

  80. ?????*/??

  81. ????public?static?String?getRootDirectoryPath()??

  82. ????{??

  83. ????????return?Environment.getRootDirectory().getAbsolutePath();??

  84. ????}??

  85. }??


6、屏幕相关辅助类?ScreenUtils


===================================================================================


[java]? view plain copy




  1. package?com.zhy.utils;??

  2. import?android.app.Activity;??

  3. import?android.content.Context;??

  4. import?android.graphics.Bitmap;??

  5. import?android.graphics.Rect;??

  6. import?android.util.DisplayMetrics;??

  7. import?android.view.View;??

  8. import?android.view.WindowManager;??

  9. /**?

  10. ?*?获得屏幕相关的辅助类?

  11. ?*??

  12. ?*??

  13. ?*??

  14. ?*/??

  15. public?class?ScreenUtils??

  16. {??

  17. ????private?ScreenUtils()??

  18. ????{??

  19. ????????/*?cannot?be?instantiated?*/??

  20. ????????throw?new?UnsupportedOperationException("cannot?be?instantiated");??

  21. ????}??

  22. ????/**?

  23. ?????*?获得屏幕高度?

  24. ?????*??

  25. ?????*?@param?context?

  26. ?????*?@return?

  27. ?????*/??

  28. ????public?static?int?getScreenWidth(Context?context)??

  29. ????{??

  30. ????????WindowManager?wm?=?(WindowManager)?context??

  31. ????????????????.getSystemService(Context.WINDOW_SERVICE);??

  32. ????????DisplayMetrics?outMetrics?=?new?DisplayMetrics();??

  33. ????????wm.getDefaultDisplay().getMetrics(outMetrics);??

  34. ????????return?outMetrics.widthPixels;??

  35. ????}??

  36. ????/**?

  37. ?????*?获得屏幕宽度?

  38. ?????*??

  39. ?????*?@param?context?

  40. ?????*?@return?

  41. ?????*/??

  42. ????public?static?int?getScreenHeight(Context?context)??

  43. ????{??

  44. ????????WindowManager?wm?=?(WindowManager)?context??

  45. ????????????????.getSystemService(Context.WINDOW_SERVICE);??

  46. ????????DisplayMetrics?outMetrics?=?new?DisplayMetrics();??

  47. ????????wm.getDefaultDisplay().getMetrics(outMetrics);??

  48. ????????return?outMetrics.heightPixels;??

  49. ????}??

  50. ????/**?

  51. ?????*?获得状态栏的高度?

  52. ?????*??

  53. ?????*?@param?context?

  54. ?????*?@return?


《Android 学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享


  1. ?????*/??

  2. ????public?static?int?getStatusHeight(Context?context)??

  3. ????{??

  4. ????????int?statusHeight?=?-1;??

  5. ????????try??

  6. ????????{??

  7. ????????????Class<?>?clazz?=?Class.forName("com.android.internal.R$dimen");??

  8. ????????????Object?object?=?clazz.newInstance();??

  9. ????????????int?height?=?Integer.parseInt(clazz.getField("status_bar_height")??

  10. ????????????????????.get(object).toString());??

  11. ????????????statusHeight?=?context.getResources().getDimensionPixelSize(height);??

  12. ????????}?catch?(Exception?e)??

  13. ????????{??

  14. ????????????e.printStackTrace();??

  15. ????????}??

  16. ????????return?statusHeight;??

  17. ????}??

  18. ????/**?

  19. ?????*?获取当前屏幕截图,包含状态栏?

  20. ?????*??

  21. ?????*?@param?activity?

  22. ?????*?@return?

  23. ?????*/??

  24. ????public?static?Bitmap?snapShotWithStatusBar(Activity?activity)??

  25. ????{??

  26. ????????View?view?=?activity.getWindow().getDecorView();??

  27. ????????view.setDrawingCacheEnabled(true);??

  28. ????????view.buildDrawingCache();??

  29. ????????Bitmap?bmp?=?view.getDrawingCache();??

  30. ????????int?width?=?getScreenWidth(activity);??

  31. ????????int?height?=?getScreenHeight(activity);??

  32. ????????Bitmap?bp?=?null;??

  33. ????????bp?=?Bitmap.createBitmap(bmp,?0,?0,?width,?height);??

  34. ????????view.destroyDrawingCache();??

  35. ????????return?bp;??

  36. ????}??

  37. ????/**?

  38. ?????*?获取当前屏幕截图,不包含状态栏?

  39. ?????*??

  40. ?????*?@param?activity?

  41. ?????*?@return?

  42. ?????*/??

  43. ????public?static?Bitmap?snapShotWithoutStatusBar(Activity?activity)??

  44. ????{??

  45. ????????View?view?=?activity.getWindow().getDecorView();??

  46. ????????view.setDrawingCacheEnabled(true);??

  47. ????????view.buildDrawingCache();??

  48. ????????Bitmap?bmp?=?view.getDrawingCache();??

  49. ????????Rect?frame?=?new?Rect();??

  50. ????????activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);??

  51. ????????int?statusBarHeight?=?frame.top;??

  52. ????????int?width?=?getScreenWidth(activity);??

  53. ????????int?height?=?getScreenHeight(activity);??

  54. ????????Bitmap?bp?=?null;??

  55. ????????bp?=?Bitmap.createBitmap(bmp,?0,?statusBarHeight,?width,?height??

  56. ????????????????-?statusBarHeight);??

  57. ????????view.destroyDrawingCache();??

  58. ????????return?bp;??

  59. ????}??

  60. }??


7、App 相关辅助类


========================================================================


[java]? view plain copy




  1. package?com.zhy.utils;??

  2. import?android.content.Context;??

  3. import?android.content.pm.PackageInfo;??

  4. import?android.content.pm.PackageManager;??

  5. import?android.content.pm.PackageManager.NameNotFoundException;??

  6. /**?

  7. ?*?跟 App 相关的辅助类?

  8. ?*??

  9. ?*??

  10. ?*??

  11. ?*/??

  12. public?class?AppUtils??

  13. {??

  14. ????private?AppUtils()??

  15. ????{??

  16. ????????/*?cannot?be?instantiated?*/??

  17. ????????throw?new?UnsupportedOperationException("cannot?be?instantiated");??

  18. ????}??

  19. ????/**?

  20. ?????*?获取应用程序名称?

  21. ?????*/??

  22. ????public?static?String?getAppName(Context?context)??

  23. ????{??

  24. ????????try??

  25. ????????{??

  26. ????????????PackageManager?packageManager?=?context.getPackageManager();??

  27. ????????????PackageInfo?packageInfo?=?packageManager.getPackageInfo(??

  28. ????????????????????context.getPackageName(),?0);??

  29. ????????????int?labelRes?=?packageInfo.applicationInfo.labelRes;??

  30. ????????????return?context.getResources().getString(labelRes);??

  31. ????????}?catch?(NameNotFoundException?e)??

  32. ????????{??

  33. ????????????e.printStackTrace();??

  34. ????????}??

  35. ????????return?null;??

  36. ????}??

  37. ????/**?

  38. ?????*?[获取应用程序版本名称信息]?

  39. ?????*??

  40. ?????*?@param?context?

  41. ?????*?@return?当前应用的版本名称?

  42. ?????*/??

  43. ????public?static?String?getVersionName(Context?context)??

  44. ????{??

  45. ????????try??

  46. ????????{??

  47. ????????????PackageManager?packageManager?=?context.getPackageManager();??

  48. ????????????PackageInfo?packageInfo?=?packageManager.getPackageInfo(??

  49. ????????????????????context.getPackageName(),?0);??

  50. ????????????return?packageInfo.versionName;??

  51. ????????}?catch?(NameNotFoundException?e)??

  52. ????????{??

  53. ????????????e.printStackTrace();??

  54. ????????}??

  55. ????????return?null;??

  56. ????}??

  57. }??


8、软键盘相关辅助类 KeyBoardUtils


=====================================================================================


[java]? view plain copy




  1. package?com.zhy.utils;??

  2. import?android.content.Context;??

  3. import?android.view.inputmethod.InputMethodManager;??

  4. import?android.widget.EditText;??

  5. /**?

  6. ?*?打开或关闭软键盘?

  7. ?*??

  8. ?*?@author?zhy?

  9. ?*??

  10. ?*/??

  11. public?class?KeyBoardUtils??

  12. {??

  13. ????/**?

  14. ?????*?打卡软键盘?

  15. ?????*??

  16. ?????*?@param?mEditText?

  17. ?????*????????????输入框?

  18. ?????*?@param?mContext?

  19. ?????*????????????上下文?

  20. ?????*/??

  21. ????public?static?void?openKeybord(EditText?mEditText,?Context?mContext)??

  22. ????{??

  23. ????????InputMethodManager?imm?=?(InputMethodManager)?mContext??

  24. ????????????????.getSystemService(Context.INPUT_METHOD_SERVICE);??

  25. ????????imm.showSoftInput(mEditText,?InputMethodManager.RESULT_SHOWN);??

  26. ????????imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,??

  27. ????????????????InputMethodManager.HIDE_IMPLICIT_ONLY);??

  28. ????}??

  29. ????/**?

  30. ?????*?关闭软键盘?

  31. ?????*??

  32. ?????*?@param?mEditText?

  33. ?????*????????????输入框?

  34. ?????*?@param?mContext?

  35. ?????*????????????上下文?

  36. ?????*/??

  37. ????public?static?void?closeKeybord(EditText?mEditText,?Context?mContext)??

  38. ????{??

  39. ????????InputMethodManager?imm?=?(InputMethodManager)?mContext??

  40. ????????????????.getSystemService(Context.INPUT_METHOD_SERVICE);??

  41. ????????imm.hideSoftInputFromWindow(mEditText.getWindowToken(),?0);??

  42. ????}??

  43. }??


9、网络相关辅助类?NetUtils


================================================================================


[java]? view plain copy




  1. package?com.zhy.utils;??

  2. import?android.app.Activity;??

  3. import?android.content.ComponentName;??

  4. import?android.content.Context;??

  5. import?android.content.Intent;??

  6. import?android.net.ConnectivityManager;??

  7. import?android.net.NetworkInfo;??

  8. /**?

  9. ?*?跟网络相关的工具类?

  10. ?*??

  11. ?*??

  12. ?*??

  13. ?*/??

  14. public?class?NetUtils??

  15. {??

  16. ????private?NetUtils()??

  17. ????{??

  18. ????????/*?cannot?be?instantiated?*/??

  19. ????????throw?new?UnsupportedOperationException("cannot?be?instantiated");??

  20. ????}??

  21. ????/**?

  22. ?????*?判断网络是否连接?

  23. ?????*??

  24. ?????*?@param?context?

  25. ?????*?@return?

  26. ?????*/??

  27. ????public?static?boolean?isConnected(Context?context)??

  28. ????{??

  29. ????????ConnectivityManager?connectivity?=?(ConnectivityManager)?context??

  30. ????????????????.getSystemService(Context.CONNECTIVITY_SERVICE);??

  31. ????????if?(null?!=?connectivity)??

  32. ????????{??

  33. ????????????NetworkInfo?info?=?connectivity.getActiveNetworkInfo();??

  34. ????????????if?(null?!=?info?&&?info.isConnected())??

  35. ????????????{??

  36. ????????????????if?(info.getState()?==?NetworkInfo.State.CONNECTED)??

  37. ????????????????{??

  38. ????????????????????return?true;??

  39. ????????????????}??

  40. ????????????}??

  41. ????????}??

  42. ????????return?false;??

  43. ????}??

  44. ????/**?

  45. ?????*?判断是否是 wifi 连接?

  46. ?????*/??

  47. ????public?static?boolean?isWifi(Context?context)??

  48. ????{??

  49. ????????ConnectivityManager?cm?=?(ConnectivityManager)?context??

  50. ????????????????.getSystemService(Context.CONNECTIVITY_SERVICE);??

  51. ????????if?(cm?==?null)??

  52. ????????????return?false;??

  53. ????????return?cm.getActiveNetworkInfo().getType()?==?ConnectivityManager.TYPE_WIFI;??

  54. ????}??

  55. ????/**?

  56. ?????*?打开网络设置界面?

  57. ?????*/??

  58. ????public?static?void?openSetting(Activity?activity)??

  59. ????{??

  60. ????????Intent?intent?=?new?Intent("/");??

  61. ????????ComponentName?cm?=?new?ComponentName("com.android.settings",??

  62. ????????????????"com.android.settings.WirelessSettings");??

  63. ????????intent.setComponent(cm);??

  64. ????????intent.setAction("android.intent.action.VIEW");??

  65. ????????activity.startActivityForResult(intent,?0);??

  66. ????}??

  67. }??


10、Http 相关辅助类?HttpUtils


====================================================================================


[java]? view plain copy




  1. package?com.zhy.utils;??

  2. import?java.io.BufferedReader;??

  3. import?java.io.ByteArrayOutputStream;??

  4. import?java.io.IOException;??

  5. import?java.io.InputStream;??

  6. import?java.io.InputStreamReader;??

  7. import?java.io.PrintWriter;??

  8. import?java.net.HttpURLConnection;??

  9. import?java.net.URL;??

  10. /**?

  11. ?*?Http 请求的工具类?

  12. ?*??

  13. ?*?@author?zhy?

  14. ?*??

  15. ?*/??

  16. public?class?HttpUtils??

  17. {??

  18. ????private?static?final?int?TIMEOUT_IN_MILLIONS?=?5000;??

  19. ????public?interface?CallBack??

  20. ????{??

  21. ????????void?onRequestComplete(String?result);??

  22. ????}??

  23. ????/**?

  24. ?????*?异步的 Get 请求?

  25. ?????*??

  26. ?????*?@param?urlStr?

  27. ?????*?@param?callBack?

  28. ?????*/??

  29. ????public?static?void?doGetAsyn(final?String?urlStr,?final?CallBack?callBack)??

  30. ????{??

  31. ????????new?Thread()??

  32. ????????{??

  33. ????????????public?void?run()??

  34. ????????????{??

  35. ????????????????try??

  36. ????????????????{??

  37. ????????????????????String?result?=?doGet(urlStr);??

  38. ????????????????????if?(callBack?!=?null)??

  39. ????????????????????{??

  40. ????????????????????????callBack.onRequestComplete(result);??

  41. ????????????????????}??

  42. ????????????????}?catch?(Exception?e)??

  43. ????????????????{??

  44. ????????????????????e.printStackTrace();??

  45. ????????????????}??

  46. ????????????};??

  47. ????????}.start();??

  48. ????}??

  49. ????/**?

  50. ?????*?异步的 Post 请求?

  51. ?????*?@param?urlStr?

  52. ?????*?@param?params?

  53. ?????*?@param?callBack?

  54. ?????*?@throws?Exception?

  55. ?????*/??

  56. ????public?static?void?doPostAsyn(final?String?urlStr,?final?String?params,??

  57. ????????????final?CallBack?callBack)?throws?Exception??

  58. ????{??

  59. ????????new?Thread()??

  60. ????????{??

  61. ????????????public?void?run()??

  62. ????????????{??

  63. ????????????????try??

  64. ????????????????{??

  65. ????????????????????String?result?=?doPost(urlStr,?params);??

  66. ????????????????????if?(callBack?!=?null)??

  67. ????????????????????{??

  68. ????????????????????????callBack.onRequestComplete(result);??

  69. ????????????????????}??

  70. ????????????????}?catch?(Exception?e)??

  71. ????????????????{??

  72. ????????????????????e.printStackTrace();??

  73. ????????????????}??

  74. ????????????};??

  75. ????????}.start();??

  76. ????}??

  77. ????/**?

  78. ?????*?Get 请求,获得返回数据?

  79. ?????*??

  80. ?????*?@param?urlStr?

  81. ?????*?@return?

  82. ?????*?@throws?Exception?

  83. ?????*/??

  84. ????public?static?String?doGet(String?urlStr)???

  85. ????{??

  86. ????????URL?url?=?null;??

  87. ????????HttpURLConnection?conn?=?null;??

  88. ????????InputStream?is?=?null;??

  89. ????????ByteArrayOutputStream?baos?=?null;??

  90. ????????try??

  91. ????????{??

  92. ????????????url?=?new?URL(urlStr);??

  93. ????????????conn?=?(HttpURLConnection)?url.openConnection();??

  94. ????????????conn.setReadTimeout(TIMEOUT_IN_MILLIONS);??

  95. ????????????conn.setConnectTimeout(TIMEOUT_IN_MILLIONS);??

  96. ????????????conn.setRequestMethod("GET");??

  97. ????????????conn.setRequestProperty("accept",?"*/*");??

  98. ????????????conn.setRequestProperty("connection",?"Keep-Alive");??

  99. ????????????if?(conn.getResponseCode()?==?200)??

  100. ????????????{??

  101. ????????????????is?=?conn.getInputStream();??

  102. ????????????????baos?=?new?ByteArrayOutputStream();??

  103. ????????????????int?len?=?-1;??

  104. ????????????????byte[]?buf?=?new?byte[128];??

  105. ????????????????while?((len?=?is.read(buf))?!=?-1)??

  106. ????????????????{??

  107. ????????????????????baos.write(buf,?0,?len);??

最后

我这里整理了一份完整的学习思维以及 Android 开发知识大全 PDF。



当然实践出真知,即使有了学习线路也要注重实践,学习过的内容只有结合实操才算是真正的掌握。


本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

用户头像

嘟嘟侠客

关注

还未添加个人签名 2021.03.19 加入

还未添加个人简介

评论

发布
暂无评论
android快速开发--常用utils类,androidstudio期末项目