获取手机信息的工具类PhoneHelper
来源:互联网 发布:淘宝开店信誉度 编辑:程序博客网 时间:2024/05/17 09:38
PhoneHelper
获取手机的一些基本信息,比如生产商家、固件版本、手机型号、手机号码、屏幕分辨率以及震动、Toast提示、Notification等
代码如下
import java.io.File;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;import android.annotation.SuppressLint;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.content.pm.ApplicationInfo;import android.content.pm.PackageManager;import android.graphics.Bitmap;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.net.Uri;import android.os.Environment;import android.os.Vibrator;import android.support.v4.app.NotificationCompat;import android.support.v4.app.NotificationCompat.BigPictureStyle;import android.support.v4.app.NotificationCompat.BigTextStyle;import android.support.v4.app.NotificationCompat.Builder;import android.telephony.TelephonyManager;import android.text.TextUtils;import android.util.DisplayMetrics;import android.util.TypedValue;import android.view.Display;import android.view.Gravity;import android.view.WindowManager;import android.widget.RemoteViews;import android.widget.Toast;public class PhoneHelper { private Context context = App.getInstance(); private static PhoneHelper util; public static PhoneHelper getInstance() { if (util == null) { util = new PhoneHelper(); } return util; } private PhoneHelper() { super(); } /** * 生产商家 * * @return */ public String getManufacturer() { return android.os.Build.MANUFACTURER; } /** * 获得固件版本 * * @return */ public String getRelease() { return android.os.Build.VERSION.RELEASE; } /** * 获得手机型号 * * @return */ public String getModel() { return android.os.Build.MODEL; } /** * 获得手机品牌 * * @return */ public String getBrand() { return android.os.Build.BRAND; } /** * 获取手机运营商 */ public String getSimOperatorName() { TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); return tm.getSimOperatorName(); } /** * 得到本机手机号码,未安装SIM卡或者SIM卡中未写入手机号,都会获取不到 * * @return */ public String getThisPhoneNumber() { TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); String number = tm.getLine1Number(); return number; } /** * 是否是电话号码 * * @param phonenumber * @return */ public boolean isPhoneNumber(String phonenumber) { Pattern pa = Pattern.compile("^[1][3,4,5,8,7][0-9]{9}$"); Matcher ma = pa.matcher(phonenumber); return ma.matches(); } /** * 打电话 * * @param phone * @param context */ public void doPhone(String phone) { Intent phoneIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phone)); context.startActivity(phoneIntent); } /** * 发短信 * * @param phone * @param content * @param c */ public void doSMS(String phone, String content) { Uri uri = null; if (!TextUtils.isEmpty(phone)) uri = Uri.parse("smsto:" + phone); Intent intent = new Intent(Intent.ACTION_SENDTO, uri); intent.putExtra("sms_body", content); context.startActivity(intent); } /** * 得到屏幕信息 getScreenDisplayMetrics().heightPixels 屏幕高 * getScreenDisplayMetrics().widthPixels 屏幕宽 * * @return */ public DisplayMetrics getScreenDisplayMetrics() { WindowManager manager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); DisplayMetrics displayMetrics = new DisplayMetrics(); Display display = manager.getDefaultDisplay(); display.getMetrics(displayMetrics); return displayMetrics; } /** * 屏幕分辨率 * * @param drame * @return */ public float getDip() { return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1, context.getResources().getDisplayMetrics()); } /** * 安装apk */ public void instance(File file) { Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); context.startActivity(intent); } /** * 是否安装了 * * @param packageName * @return */ public boolean isInstall(String packageName) { PackageManager packageManager = context.getPackageManager(); List<ApplicationInfo> packs = packageManager .getInstalledApplications(PackageManager.GET_ACTIVITIES); for (ApplicationInfo info : packs) { if (info.packageName.equals(packageName)) return true; } return false; } /** * 检测网络是否可用 * * @return */ public boolean isNetworkConnected() { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo ni = cm.getActiveNetworkInfo(); return ni != null && ni.isConnected(); } /** * 将Toast放在屏幕上方 * * @param message */ public void show(String message) { Toast toast = Toast.makeText(context, message, Toast.LENGTH_LONG); toast.setGravity(Gravity.TOP, 0, (getScreenDisplayMetrics().heightPixels / 5)); toast.show(); } /** * 调用浏览器打开 * * @param activity * @param url */ public void openWeb(String url) { Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(url)); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } /** * 是否有外存卡 * * @return */ public boolean isExistExternalStore() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { return true; } else { return false; } } /** * 得到sd卡路径 * * @return */ public String getExternalStorePath() { if (isExistExternalStore()) { return Environment.getExternalStorageDirectory().getAbsolutePath(); } return null; } /** * 得到网络类型,0是未知或未连上网络,1为WIFI,2为2g,3为3g,4为4g * * @return */ public int getNetType() { ConnectivityManager connectMgr = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); int type = 0; NetworkInfo info = connectMgr.getActiveNetworkInfo(); if (info == null || !info.isConnected()) { return type; } switch (info.getType()) { case ConnectivityManager.TYPE_WIFI: type = 1; break; case ConnectivityManager.TYPE_MOBILE: type = getNetworkClass(info.getSubtype()); break; default: type = 0; break; } return type; } /** * 判断数据连接的类型 * * @param networkType * @return */ public int getNetworkClass(int networkType) { switch (networkType) { case TelephonyManager.NETWORK_TYPE_GPRS: case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_CDMA: case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: case TelephonyManager.NETWORK_TYPE_UNKNOWN: return 2; case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_EVDO_0: case TelephonyManager.NETWORK_TYPE_EVDO_A: case TelephonyManager.NETWORK_TYPE_HSDPA: case TelephonyManager.NETWORK_TYPE_HSUPA: case TelephonyManager.NETWORK_TYPE_HSPA: case TelephonyManager.NETWORK_TYPE_EVDO_B: case TelephonyManager.NETWORK_TYPE_EHRPD: return 3; case TelephonyManager.NETWORK_TYPE_LTE: return 4; default: return 0; } } /** * 开始震动 * * @param context * @param repeat 0重复 -1不重复 * @param pattern */ @SuppressLint("NewApi") public synchronized void doVibrate(Context context, int repeat, long... pattern) { if (pattern == null) { pattern = new long[] { 1000, 1000, 1000 }; } Vibrator mVibrator = (Vibrator) context .getSystemService(Context.VIBRATOR_SERVICE); if (mVibrator.hasVibrator()) { mVibrator.vibrate(pattern, repeat); } } /** * 建立一个NotificationCompat.Builder,并返回 * @param contentTitle * @param contentText * @param contentInfo * @param largeIcon * @param smallIcon * @param contentclass * @return */ public Builder getNotifyBuilder(String contentTitle, String contentText, String contentInfo, Bitmap largeIcon, int smallIcon, Class contentclass) { PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, new Intent(), 0); if (contentclass != null) { pendingIntent = PendingIntent.getActivity(context, 0, new Intent( context, contentclass), 0); } Builder builder = new NotificationCompat.Builder(context) .setLargeIcon(largeIcon).setSmallIcon(smallIcon) .setContentInfo(contentInfo).setContentTitle(contentTitle) .setContentText(contentText).setAutoCancel(true) .setContentIntent(pendingIntent) .setDefaults(Notification.DEFAULT_ALL); return builder; } /** * 建一个带有ProgressBar的NotificationCompat.Builder,并返回 * @param contentTitle * @param contentText * @param contentInfo * @param largeIcon * @param smallIcon * @param contentclass * @param max * @param progress * @param indeterminate * @return */ public Builder getNotifyBuilderProgress(String contentTitle, String contentText, String contentInfo, Bitmap largeIcon, int smallIcon, Class contentclass, int max, int progress, boolean indeterminate) { Builder builder = getNotifyBuilder(contentTitle, contentText, contentInfo, largeIcon, smallIcon, contentclass); builder.setProgress(max, progress, indeterminate); return builder; } /** * 普通的Notification * @param builder * @param notifyId */ public void showNotifyNormal(Builder builder, int notifyId) { Notification notification = builder.build(); NotificationManager manager = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE); manager.notify(notifyId, notification); } /** * 大布局Notification * @param style * @param builder * @param notifyId */ public void showNotifyBigView(NotificationCompat.Style style, Builder builder, int notifyId) { builder.setStyle(style); Notification notification = builder.build(); NotificationManager manager = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE); manager.notify(notifyId, notification); } /** * BigTextStyle风格的Notification * @param bigContentTitle * @param summaryText * @param bigText * @param builder * @param notifyId */ public void showNotifyBigText(String bigContentTitle, String summaryText, String bigText, Builder builder, int notifyId) { NotificationCompat.BigTextStyle textStyle = new BigTextStyle(); textStyle.setBigContentTitle(bigContentTitle) .setSummaryText(summaryText).bigText(bigText); showNotifyBigView(textStyle, builder, notifyId); } /** * BigPictureStyle风格的Notification * @param bigContentTitle * @param summaryText * @param bigPicture * @param builder * @param notifyId */ public void showNotifyBigPic(String bigContentTitle, String summaryText, Bitmap bigPicture, Builder builder, int notifyId) { NotificationCompat.BigPictureStyle pictureStyle = new BigPictureStyle(); pictureStyle.setBigContentTitle(bigContentTitle) .setSummaryText(summaryText).bigPicture(bigPicture); showNotifyBigView(pictureStyle, builder, notifyId); } /** * InboxStyle风格的Notification * @param bigContentTitle * @param summaryText * @param line * @param builder * @param notifyId */ public void showNotifyBigInbox(String bigContentTitle, String summaryText, String[] line, Builder builder, int notifyId) { NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle(); inboxStyle.setBigContentTitle(bigContentTitle).setSummaryText( summaryText); for (int i = 0; i < line.length; i++) { inboxStyle.addLine(line[i]); } showNotifyBigView(inboxStyle, builder, notifyId); } /** * 自定义Notification * @param layoutId * @param contentclass * @param smallIcon * @param clickCla * @param clickId * @param notifyId */ public void showNotifyCustomView(int layoutId, Class contentclass, int smallIcon, Class clickCla, int clickId, int notifyId) { NotificationManager manager = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE); RemoteViews remoteViews = new RemoteViews(context.getPackageName(), layoutId); if (clickCla != null) { Intent intent = new Intent(context, clickCla); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); remoteViews.setOnClickPendingIntent(clickId, pendingIntent); } Builder builder = getNotifyBuilder("", "", "", null, smallIcon, contentclass).setContent(remoteViews); manager.notify(notifyId, builder.build()); }}
0 0
- 获取手机信息的工具类PhoneHelper
- 获取手机信息的工具类
- 获取手机信息的工具类
- 获取手机信息的工具类
- 获取手机信息的工具类
- 安卓中获取手机的相关信息的工具类
- 获取手机一些系统信息的一些工具类
- 获取手机中所有apk相关信息的工具类
- 获取手机信息工具类-android .
- android 获取手机信息工具类
- Android:获取手机应用程序信息工具类
- Android 获取手机信息工具类
- 获取手机信息工具le
- 针对获取手机上的一些特定信息的工具类
- android获取当前手机设备信息工具类
- Android中 获取手机信息以及联网状态的一些工具类小结
- 获取手机基本信息的工具类
- 获取手机的头信息
- 常用的HTML小知识
- Junction.exe 命令应用详解及下载
- 模块[camera]_ISP与DSP的区别
- Neutron LoadBalance源码解析(一)
- 工具栏(新建/保存/删除/清空) 禁用/启用
- 获取手机信息的工具类PhoneHelper
- 获取系统内存空间和物理内存空间
- 存储IOPS与吞吐量的计算
- 解决Cocos2d-X显示瓦片地图黑线的问题
- 最易懂的栈桢介绍
- JAVA 正则表达式的Matcher类 正则表达式语法
- 计算两个时间之间的差距
- 如何查找SQL执行的真实执行计划
- 模块[camera]_变焦与对焦(转自csdn)