1. package com.cqytjr.util;
  2.  
  3. import java.io.File;
  4. import java.net.InetAddress;
  5. import java.net.NetworkInterface;
  6. import java.net.SocketException;
  7. import java.util.Enumeration;
  8.  
  9. import android.app.Activity;
  10. import android.content.Context;
  11. import android.content.Intent;
  12. import android.content.pm.PackageManager.NameNotFoundException;
  13. import android.net.Uri;
  14. import android.net.wifi.WifiInfo;
  15. import android.net.wifi.WifiManager;
  16. import android.telephony.TelephonyManager;
  17. import android.util.Log;
  18. import android.view.WindowManager;
  19.  
  20. /**
  21. * app处理工具类
  22. *
  23. * @author chenliang
  24. * @version v1.0
  25. * @date 2014-2-20
  26. */
  27. public class AppUtil {
  28. /**
  29. * 描述:安装APK
  30. *
  31. * @param context
  32. * the context
  33. * @param file
  34. * apk文件路径
  35. */
  36. public static void installApk(Context context, File file) {
  37. Intent intent = new Intent();
  38. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  39. intent.setAction(android.content.Intent.ACTION_VIEW);
  40. intent.setDataAndType(Uri.fromFile(file),
  41. "application/vnd.android.package-archive");
  42. context.startActivity(intent);
  43. }
  44.  
  45. /**
  46. * 描述:卸载程序.
  47. *
  48. * @param context
  49. * the context
  50. * @param packageName
  51. * 要卸载程序的包名
  52. */
  53. public static void uninstallApk(Context context, String packageName) {
  54. Intent intent = new Intent(Intent.ACTION_DELETE);
  55. Uri packageURI = Uri.parse("package:" + packageName);
  56. intent.setData(packageURI);
  57. context.startActivity(intent);
  58. }
  59.  
  60. /**
  61. * 获取版本号
  62. *
  63. * @param context
  64. * @return
  65. */
  66. public static int getVersionCode(Context context) {
  67. try {
  68. return context.getPackageManager().getPackageInfo(
  69. context.getPackageName(), 0).versionCode;
  70. } catch (NameNotFoundException e) {
  71. LogUtil.error("获取版本号失败");
  72. e.printStackTrace();
  73. }
  74. return 0;
  75. }
  76.  
  77. /**
  78. * 获取版本名
  79. *
  80. * @param context
  81. * @return
  82. */
  83. public static String getVersionName(Context context) {
  84. try {
  85. return context.getPackageManager().getPackageInfo(
  86. context.getPackageName(), 0).versionName;
  87. } catch (NameNotFoundException e) {
  88. LogUtil.error("获取版本名失败");
  89. e.printStackTrace();
  90. }
  91. return "";
  92. }
  93.  
  94. /**
  95. * 获取设备的IMEI/设备号
  96. *
  97. * @param context
  98. * @return IMEI/设备号
  99. */
  100. public static String getIMEI(Activity context) {
  101. TelephonyManager tm = (TelephonyManager) context
  102. .getSystemService(Context.TELEPHONY_SERVICE);
  103. return tm.getDeviceId();
  104. }
  105.  
  106. /**
  107. * 保存屏幕常亮
  108. *
  109. * @param context
  110. */
  111. public static void keepLight(Activity activity) {
  112. // 保持屏幕常亮
  113. activity.getWindow().addFlags(
  114. WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  115. }
  116.  
  117. /**
  118. * 获取本机IP地址
  119. */
  120. public static String getLocalIpToString() {
  121. try {
  122. for (Enumeration<NetworkInterface> en = NetworkInterface
  123. .getNetworkInterfaces(); en.hasMoreElements();) {
  124. NetworkInterface intf = en.nextElement();
  125. for (Enumeration<InetAddress> enumIpAddr = intf
  126. .getInetAddresses(); enumIpAddr.hasMoreElements();) {
  127. InetAddress inetAddress = enumIpAddr.nextElement();
  128. if (!inetAddress.isLoopbackAddress()) {
  129. return inetAddress.getHostAddress().toString();
  130. }
  131. }
  132. }
  133. } catch (SocketException ex) {
  134. Log.e("WifiPreference IpAddress", ex.toString());
  135. }
  136. return null;
  137. }
  138.  
  139. /**
  140. * 获取本机电话号码
  141. *
  142. * @param context
  143. * @return
  144. */
  145. public static String getPhone_num(Context context) {
  146. String phone = ((TelephonyManager) context
  147. .getSystemService(Context.TELEPHONY_SERVICE)).getLine1Number();
  148. return phone;
  149. }
  150.  
  151. /**
  152. * Role:Telecom service providers获取手机服务商信息 <BR>
  153. * 需要加入权限<uses-permission
  154. * android:name="android.permission.READ_PHONE_STATE"/> <BR>
  155. */
  156. public static String getProvidersName(Context context) {
  157. String ProvidersName = null;
  158. // 返回唯一的用户ID;就是这张卡的编号神马的
  159. String IMSI = ((TelephonyManager) context
  160. .getSystemService(Context.TELEPHONY_SERVICE)).getSubscriberId();
  161. // IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
  162. System.out.println(IMSI);
  163. if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {
  164. ProvidersName = "中国移动";
  165. } else if (IMSI.startsWith("46001")) {
  166. ProvidersName = "中国联通";
  167. } else if (IMSI.startsWith("46003")) {
  168. ProvidersName = "中国电信";
  169. }
  170. return ProvidersName;
  171. }
  172.  
  173. /**
  174. * 获取本机MAC地址
  175. *
  176. * @param context
  177. * @return
  178. */
  179. public static String getMac(Context context) {
  180. String macAddress = null;
  181. WifiManager wifiMgr = null;
  182. Object obj = context.getSystemService(Context.WIFI_SERVICE);
  183. if (null != obj) {
  184. wifiMgr = (WifiManager) obj;
  185. }
  186. WifiInfo info = (null == wifiMgr ? null : wifiMgr.getConnectionInfo());
  187. if (null != info) {
  188. macAddress = info.getMacAddress();
  189. }
  190. return macAddress;
  191. }
  192. }

  

android常用函数的更多相关文章

  1. Android常用的物理按键及其触发事件

    Activity和View都能接收触摸和按键,如果响应事件只需要在继承类里复写事件函数即可:当一个视图(如一个按钮)被触摸时,该对象上的 onTouchEvent() 方法会被调用.不过,为了侦听这个 ...

  2. Android 常用代码大集合 [转]

    [Android]调用字符串资源的几种方法   字符串资源的定义 文件路径:res/values/strings.xml 字符串资源定义示例: <?xml version="1.0&q ...

  3. Android常用开源项目

    Android开源项目第一篇——个性化控件(View)篇   包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Progre ...

  4. EventBus的其他常用函数

    上一篇EventBus最简易使用方式介绍了EventBus最简易的使用方式,摆脱了叽里呱啦+图片的长篇大论.目的是为了让刚开始接触的人们不晕头转向.那么这篇..我也要开始图片+叽里呱啦了. 转载请注明 ...

  5. php常用函数搜集

    搜集了几个php常用函数方法....相信项目中肯定会用到吧... <?php /** * @param $arr * @param $key_name * @return array * 将数据 ...

  6. Android常用酷炫控件(开源项目)github地址汇总

    转载一个很牛逼的控件收集帖... 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.Gri ...

  7. Appium——api常用函数

    appium常用函数介绍:   获取页面信息:   1. def get_current_activity(cls, driver): ''' 获取当前页面的activity :param drive ...

  8. Android 常用炫酷控件(开源项目)git地址汇总

    第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.P ...

  9. 性能测试基础-开门篇3(LR常用函数介绍)

    LR常用的函数,协议不一样函数会不一样,这里简单的介绍下HTTP\WEBSERVICE\SOCKET协议常用函数: HTTP: web_set_max_html_param_len("102 ...

随机推荐

  1. 3. CMake 系列 - 分模块编译&安装项目

    目录 1. 项目目录结构 2. 相关代码 2.1 add 模块 2.2 sub 模块 2.3 测试模块 2.4 顶层 CMakeLists.txt 3. 编译 & 安装 4. 项目安装基本语法 ...

  2. 网络编程 -- RPC实现原理 -- NIO多线程 -- 迭代版本V1

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V1——设置标识变量selectionKey.attach(true);只处理一次(会一直循环遍历selectionKeys,占用CPU资源). ( ...

  3. mysql 冷热备份

    文章转自:http://www.linuxidc.com/Linux/2014-03/98710.htm 冷备份(OFF, 慢, 时间点上恢复)冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提 ...

  4. 【!Important】Zookeeper用来做什么的,有几种类型的节点

    zookeeper=文件系统+通知机制 一.Zookeeper提供了什么 1.文件系统 Zookeeper维护一个类似文件系统的数据结构 每个子目录项如NameService都被称为znoed,和文件 ...

  5. Office Web Apps Server

    Office Web Apps Server Office Web Apps Server 是一款 Office 服务器产品,可提供针对 Office 文件的基于浏览器的文件查看和编辑服务.Offic ...

  6. Springmvc的原理和业务处理

    要尽量弄懂这个springmvc的工作原理:DispatcherServle,HandlerMapping,HandlerAdapter和ViewResolver等对象协同工作,完成springmvc ...

  7. day_6.21web框架编写

    web框架都是相同,只需把某些东西改写!就可以为自己所用! 直接实现改写,补充东西!然后,就是输入一个路径,然后执行方法!!!! 更改路由,然后调用方法就好!

  8. 【转】asp.net项目在IE11下出现“__doPostBack”未定义的解决办法

    最近我们运营的网站有用户反馈在 IE 11 下<asp:LinkButton> 点击出现 "__doPostBack"未定义",经过一番google,终于知道 ...

  9. babel-preset-env使用介绍

    声明:文章转自https://www.cnblogs.com/ye-hcj/p/7070084.html 本文介绍一个babel转码神器babel-preset-env 简介 现如今不同的浏览器和平台 ...

  10. 介绍一款jquery ui组件gijgo(含tree树状结构、grid表格),特点:简易、文档全清晰易懂、示例代码

    http://gijgo.com   gijgo组件 特点:简易.文档全-虽然是英文的但是清晰易懂可读性强.含示例代码(后端直接用原生.Net C# MVC的哦!非常合.Net开发胃口),网站网速快, ...