iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android中怎么实现一个手机管理工具类
  • 273
分享到

Android中怎么实现一个手机管理工具类

android 2023-05-30 22:05:55 273人浏览 独家记忆
摘要

本篇文章给大家分享的是有关Android中怎么实现一个手机管理工具类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。工具类内的方法:getInstance  

本篇文章给大家分享的是有关Android中怎么实现一个手机管理工具类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

工具类内的方法:

getInstance          : 单例对象
getSDKVersionNumber  : 获取手机系统版本号
getPhoneModel        : 获取手机型号
getPhoneWidth        : 获取手机宽度
getPhoneHeight       : 获取手机高度
getPhoneImei         : 获取手机imei串号 ,GSM手机的 IMEI 和 CDMA手机的 MEID
getPhoneSim          : 获取手机sim卡号
getPhoneNum          : 获取手机号
isSDCardMount        : 判断sd卡是否挂载
getSDFreeSize        : 获取sd卡剩余空间的大小
getSDAllSize         : 获取sd卡空间的总大小
isTablet             : 判断是否是平板
isApkInstalled       : 判断一个apk是否安装
getAppPermissions    : 获取应用权限 名称列表
getInstalledApp      : 获取手机内安装的应用
getUserInstalledApp  : 获取手机安装非系统应用
getInstalledAppInfo  : 获取安装应用的信息
startAppPkg          : 打开指定包名的应用
unInstallApk         : 卸载指定包名的应用
callPhone            : 直接呼叫指定的号码
toCallPhoneActivity  : 跳转至拨号界面
sendMessage          : 直接调用短信api发送信息(设置监听发送和接收状态)
toSendMessageActivity: 跳转至发送短信界面(自动设置接收方的号码)

AppPhoneMgr类的代码

 package com.example.phone;import android.content.Context;import android.content.Intent;import android.content.pm.ApplicationInfo;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.content.pm.PackageManager.NameNotFoundException;import android.content.res.Configuration;import android.net.Uri;import android.os.Environment;import android.os.StatFs;import android.provider.Contacts;import android.telephony.TelephonyManager;import android.view.WindowManager;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;public class AppPhoneMgr { private static AppPhoneMgr phoneUtil; public static AppPhoneMgr getInstance() {  if (phoneUtil == null) {   synchronized (AppPhoneMgr.class) {    if (phoneUtil == null) {     phoneUtil = new AppPhoneMgr();    }   }  }  return phoneUtil; }  public Integer getSDKVersionNumber() {  Integer sdkVersion;  try {   sdkVersion = Integer.valueOf(android.os.Build.VERSION.SDK_INT);  } catch (NumberFORMatException e) {   e.printStackTrace();   sdkVersion = Integer.valueOf(0);  }  return sdkVersion; }  public String getPhoneModel() {  return android.os.Build.MODEL; }  @SuppressWarnings("deprecation") public int getPhoneWidth(Context context) {  WindowManager wm = (WindowManager) context    .getSystemService(Context.WINDOW_SERVICE);  return wm.getDefaultDisplay().getWidth(); }  @SuppressWarnings("deprecation") public int getPhoneHeight(Context context) {  WindowManager wm = (WindowManager) context    .getSystemService(Context.WINDOW_SERVICE);  return wm.getDefaultDisplay().getHeight(); }  public String getPhoneImei(Context context) {  TelephonyManager tm = (TelephonyManager) context    .getSystemService(Context.TELEPHONY_SERVICE);  if (tm == null)   return null;  return tm.getDeviceId(); }  public String getPhoneSim(Context context) {  TelephonyManager tm = (TelephonyManager) context    .getSystemService(Context.TELEPHONY_SERVICE);  if (tm == null)   return null;  return tm.getSubscriberId(); }  public String getPhoneNum(Context context) {  TelephonyManager tm = (TelephonyManager) context    .getSystemService(Context.TELEPHONY_SERVICE);  if (tm == null)   return null;  return tm.getLine1Number(); }  public boolean isSDCardMount() {  if (Environment.getExternalStorageState().equals(    Environment.MEDIA_MOUNTED)) {   return true;  } else {   return false;  } }  @SuppressWarnings("deprecation") public long getSDFreeSize() {  File path = Environment.getExternalStorageDirectory(); // 取得SD卡文件路径  StatFs sf = new StatFs(path.getPath());  long blockSize = sf.getBlockSize(); // 获取单个数据块的大小(Byte)  long freeBlocks = sf.getAvailableBlocks();// 空闲的数据块的数量  // 返回SD卡空闲大小  return (freeBlocks * blockSize) / 1024 / 1024; // 单位MB }  @SuppressWarnings("deprecation") public long getSDAllSize() {  File path = Environment.getExternalStorageDirectory(); // 取得SD卡文件路径  StatFs sf = new StatFs(path.getPath());  long blockSize = sf.getBlockSize(); // 获取单个数据块的大小(Byte)  long allBlocks = sf.getBlockCount(); // 获取所有数据块数  // 返回SD卡大小  return (allBlocks * blockSize) / 1024 / 1024; // 单位MB }  public boolean isTablet(Context context) {  return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE; }  public boolean isApkInstalled(Context context, String packageName) {  PackageManager pm = context.getPackageManager();  try {   pm.getPackageInfo(packageName, 0);  } catch (NameNotFoundException e) {   return false;  }  return true; }  public void call(Context context, String phoneNum) throws Exception {  if (phoneNum != null && !phoneNum.equals("")) {   Uri uri = Uri.parse("tel:" + phoneNum);   Intent intent = new Intent(Intent.ACTION_DIAL, uri);   context.startActivity(intent);  } }  public void toChooseContactsList(Context context) {  Intent intent = new Intent();  intent.setAction(Intent.ACTION_VIEW);  intent.setData(Contacts.People.CONTENT_URI);  context.startActivity(intent); }  public void toSendMessageActivity(Context context, String number) {  try {   Uri uri = Uri.parse("smsto:" + number);   Intent intent = new Intent(Intent.ACTION_SENDTO, uri);   context.startActivity(intent);  } catch (Exception e) {   e.printStackTrace();  } }  public void openWEB(Context context, String url) {  try {   Uri uri = Uri.parse(url);   context.startActivity(new Intent(Intent.ACTION_VIEW, uri));  } catch (Exception e) {   e.printStackTrace();  } }  public String[] getAppPermissions(Context context)   throws NameNotFoundException {  PackageManager pm = context.getPackageManager();  PackageInfo packageInfo = pm.getPackageInfo(context.getPackageName(),    PackageManager.GET_PERMISSIONS);  return getAppPermissions(packageInfo); } public String[] getAppPermissions(PackageInfo packageInfo)   throws NameNotFoundException {  return packageInfo.requestedPermissions; }  public List<PackageInfo> getInstalledApp(Context context) {  PackageManager pm = context.getPackageManager();  return pm.getInstalledPackages(0); }  @SuppressWarnings("static-access") public List<PackageInfo> getUserInstalledApp(Context context) {  List<PackageInfo> infos = getInstalledApp(context);  List<PackageInfo> apps = new ArrayList<PackageInfo>();  for (PackageInfo info : infos) {   if ((info.applicationInfo.flags & info.applicationInfo.FLAG_SYSTEM) <= 0) {    apps.add(info);   }  }  infos.clear();  infos = null;  return apps; }  public Map<String, Object> getInstalledAppInfo(Context context,             PackageInfo info) {  Map<String, Object> appInfos = new HashMap<String, Object>();  PackageManager pm = context.getPackageManager();  ApplicationInfo aif = info.applicationInfo;  appInfos.put("icon", pm.getApplicationIcon(aif));  appInfos.put("lable", pm.getApplicationLabel(aif));  appInfos.put("packageName", aif.packageName);  return appInfos; }  public void startAppPkg(Context context, String pkg) {  Intent startIntent = context.getPackageManager()    .getLaunchIntentForPackage(pkg);  startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  context.startActivity(startIntent); }  public void unInstallApk(Context context, String packageName) {  Uri uri = Uri.parse("package:" + packageName);  Intent intent = new Intent(Intent.ACTION_DELETE);  intent.setData(uri);  context.startActivity(intent); }  public static boolean isMobileNO(String mobile) {  Pattern p = Pattern    .compile("^((145|147)|(15[^4])|(17[0-9])|((13|18)[0-9]))\\d{8}$");  Matcher m = p.matcher(mobile);  return m.matches(); }}

Activity的调用示例代码:

package com.example.phone;import android.app.Activity;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.os.Bundle;import android.view.View;import android.widget.Toast;import java.util.Arrays;import java.util.List;import java.util.Map;public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main); }  public void getSDKVersionNumber(View view) {  Integer sdkVersionNumber = AppPhoneMgr.getInstance().getSDKVersionNumber();  showToast(" \n 获取手机系统版本号:" + sdkVersionNumber); }  public void getPhoneModel(View view) {  String phoneModel = AppPhoneMgr.getInstance().getPhoneModel();  showToast(" \n 获取手机型号:" + phoneModel); }  public void getPhoneWidth(View view) {  int phoneWidth = AppPhoneMgr.getInstance().getPhoneWidth(this);  showToast(" \n 获取手机宽度:" + phoneWidth); }  public void getPhoneHeight(View view) {  int phoneHeight = AppPhoneMgr.getInstance().getPhoneHeight(this);  showToast(" \n 获取手机宽度:" + phoneHeight); }  public void getPhoneImei(View view) {  String phoneImei = AppPhoneMgr.getInstance().getPhoneImei(this);  showToast(" \n 获取手机imei串号:" + phoneImei); }  public void getPhoneSim(View view) {  String phoneSim = AppPhoneMgr.getInstance().getPhoneSim(this);  showToast(" \n 获取手机sim卡号:" + phoneSim); }  public void getPhoneNum(View view) {  String phoneSim = AppPhoneMgr.getInstance().getPhoneNum(this);  showToast(" \n 获取手机号:" + phoneSim); }  public void isSDCardMount(View view) {  boolean isSDCardMount = AppPhoneMgr.getInstance().isSDCardMount();  showToast(" \n 判断sd卡挂载:" + isSDCardMount); }  public void getSDFreeSize(View view) {  long getSDFreeSize = AppPhoneMgr.getInstance().getSDFreeSize();  showToast(" \n 获取sd卡剩余空间的大小:" + getSDFreeSize); }  public void getSDAllSize(View view) {  long getSDAllSize = AppPhoneMgr.getInstance().getSDAllSize();  showToast(" \n 获取sd卡剩余空间的大小:" + getSDAllSize); }  public void isTablet(View view) {  boolean isTablet = AppPhoneMgr.getInstance().isTablet(this);  showToast(" \n 判断是否是平板:" + isTablet); }  public void isApkInstalled(View view) {  boolean isApkInstalled = AppPhoneMgr.getInstance().isApkInstalled(this, "com.wanputech.abp");  showToast(" \n 判断一个apk是否安装:" + isApkInstalled); }  public void call(View view) {  String phone = "13812345678";  try {   AppPhoneMgr.getInstance().call(this, phone);  } catch (Exception e) {   showToast(" \n 拨打电话失败:" + e.getMessage());  }  showToast(" \n 拨打电话:" + phone); }  public void toChooseContactsList(View view) {  AppPhoneMgr.getInstance().toChooseContactsList(this); }  public void toSendMessageActivity(View view) {  AppPhoneMgr.getInstance().toSendMessageActivity(this, "12315"); }  public void openWeb(View view) {  String url = "https://www.baidu.com/"; //百度  AppPhoneMgr.getInstance().openWeb(this, url); }  public void getAppPermissions(View view) {  try {   String[] getAppPermissions = AppPhoneMgr.getInstance().getAppPermissions(this);   showToast(" \n 获取应用权限 名称列表:" + getAppPermissions);  } catch (Exception e) {   showToast(" \n 获取应用权限 名称列表:" + e.getMessage());  } }  public void getAppPermissions2(View view) {  try {   String[] getAppPermissions = AppPhoneMgr.getInstance().getAppPermissions(getPackageManager().getPackageInfo("com.example.phone", 1));   showToast(" \n 程序请求了的权限:" + Arrays.asList(getAppPermissions));  } catch (Exception e) {   showToast(" \n 程序请求了的权限:" + e.getMessage());  } }  public void getInstalledApp(View view) {  List<PackageInfo> installedApp = AppPhoneMgr.getInstance().getInstalledApp(this);  for (int i = 0; i < installedApp.size(); i++) {   showToast(" \n 获取手机内安装的应用:" + installedApp.get(i));  } }  public void getUserInstalledApp(View view) {  List<PackageInfo> installedApp = AppPhoneMgr.getInstance().getUserInstalledApp(this);  for (int i = 0; i < installedApp.size(); i++) {   showToast(" \n 获取手机安装非系统应用:" + installedApp.get(i));  } }  public void getInstalledAppInfo(View view) {  try {   Map<String, Object> installedAppInfo = AppPhoneMgr.getInstance().getInstalledAppInfo(this, getPackageManager().getPackageInfo("com.example.phone", 1));   for (int i = 0; i < installedAppInfo.size(); i++) {    showToast(" \n 获取安装应用的信息:" + installedAppInfo.get(i));   }  } catch (PackageManager.NameNotFoundException e) {   showToast(" \n 获取安装应用的信息:" + e.getMessage());  } }  public void startAppPkg(View view) {  try {   //我另一个程序的包名com.wanputech.abp   AppPhoneMgr.getInstance().startAppPkg(this, "com.wanputech.abp");  } catch (Exception e) {   showToast("错误:" + e.getMessage());  } }  public void unInstallApk(View view) {  try {   //我另一个程序的包名com.example.column   String packageName = "com.example.column";   AppPhoneMgr.getInstance().unInstallApk(this, packageName);  } catch (Exception e) {   showToast("错误:" + e.getMessage());  } }  public void isMobileNO(View view) {  //  String phoneNum = "12345678978";  boolean mobileNO = AppPhoneMgr.isMobileNO(phoneNum);  showToast(" \n 手机号判断:" + phoneNum + "--" + mobileNO); } Toast toast; public void showToast(String msg) {  if (toast == null) {   toast = Toast.makeText(this, msg, Toast.LENGTH_SHORT);  } else {   toast.setText(msg);  }  toast.show(); }}

以上就是Android中怎么实现一个手机管理工具类,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: Android中怎么实现一个手机管理工具类

本文链接: https://www.lsjlt.com/news/221856.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android中怎么实现一个手机管理工具类
    本篇文章给大家分享的是有关Android中怎么实现一个手机管理工具类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。工具类内的方法:getInstance  ...
    99+
    2023-05-30
    android
  • Android中怎么实现一个图片切割工具类
    Android中怎么实现一个图片切割工具类,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。图片切割工具类定义:public class ImageSpli...
    99+
    2023-05-30
    android
  • 利用Java怎么实现一个超时工具类
    本文章向大家介绍利用Java怎么实现一个超时工具类的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程...
    99+
    2023-06-06
  • Android应用中怎么实现一个手机震动功能
    本篇文章给大家分享的是有关Android应用中怎么实现一个手机震动功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现方法如下:import android.app.Acti...
    99+
    2023-05-31
    android roi
  • Java中怎么实现一个日志切割清理工具
    本篇文章给大家分享的是有关Java中怎么实现一个日志切割清理工具,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过...
    99+
    2023-06-17
  • 使用Java怎么实现一个3des加密解密工具类
    这期内容当中小编将会给大家带来有关使用Java怎么实现一个3des加密解密工具类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体如下:package com.gcloud.common;imp...
    99+
    2023-05-30
    java 3des
  • shell中怎么实现一个字符编码转换工具
    shell中怎么实现一个字符编码转换工具,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。#!/bin/bash: << mark转码工具,支持UTF-...
    99+
    2023-06-09
  • Python中怎么实现一个数据预测集成工具
    这篇文章给大家介绍Python中怎么实现一个数据预测集成工具,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。数据的训练和训练的GUI窗口经过算法比较,发现这里我们选择使用sklearn简单的多元回归进行拟合数据可以达到比...
    99+
    2023-06-16
  • 怎么在Android中利用RecyclerView实现一个频道管理功能
    本篇文章给大家分享的是有关怎么在Android中利用RecyclerView实现一个频道管理功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。需要在build里添加依赖 com...
    99+
    2023-05-31
    recyclerview android recycle
  • Android开发中怎么实现一个手势密码功能
    本篇文章为大家展示了Android开发中怎么实现一个手势密码功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如果使用GestureOverlayView,在xml配置文件中使用Android.ge...
    99+
    2023-05-31
    android roi
  • 怎么在Android 应用中实现一个九宫格手势锁
    怎么在Android 应用中实现一个九宫格手势锁?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。主要的方法是重写View.onTouchEvent( Motion...
    99+
    2023-05-31
    android roi
  • 怎么在Android项目中实现一个Tab分类排序控件
    怎么在Android项目中实现一个Tab分类排序控件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。XML布局引入<com.net168.lib.SortTabLayout...
    99+
    2023-05-31
    android tab roi
  • 怎么在Android 中利用camera2 API 实现一个相机功能
    怎么在Android 中利用camera2 API 实现一个相机功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。流程因为 camera2 提供的接口比较多,虽然很灵活,但是也...
    99+
    2023-05-31
    android camera2 api roi
  • Android开发中怎么实现一个 一键清理、内存清理功能
    Android开发中怎么实现一个 一键清理、内存清理功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。360桌面、金山清理大师等都提供了一键清理、一键加速等功能,其实就是杀一些...
    99+
    2023-05-31
    android roi
  • 怎么在Android应用中实现一个手势操作识别功能
    今天就跟大家聊聊有关怎么在Android应用中实现一个手势操作识别功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先,在Android系统中,每一次手势交互都会依照以下顺序执行。...
    99+
    2023-05-31
    android roi
  • java中怎么实现一个航空用户管理系统
    这期内容当中小编将会给大家带来有关java中怎么实现一个航空用户管理系统,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。用户模块: 用户添加2. 密码修改3. 个人信息查看4. 账号状态修改(禁用0、启用1...
    99+
    2023-06-20
  • 怎么在Java中利用MySQL实现一个图书管理系统
    今天就跟大家聊聊有关怎么在Java中利用MySQL实现一个图书管理系统,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一,功能管理员登录图书借阅信息管理图书信息管理管理员更改密码退出系...
    99+
    2023-06-14
  • 怎么在java中使用mysql实现一个学生信息管理系统
    今天就跟大家聊聊有关怎么在java中使用mysql实现一个学生信息管理系统,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。具体内容如下import java.awt.Bord...
    99+
    2023-05-30
    java mysql
  • 使用java怎么在控制台中实现一个学生信息管理系统
    使用java怎么在控制台中实现一个学生信息管理系统?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重...
    99+
    2023-06-14
  • 计算机中怎么实现批处理判断第一个硬盘的最后一个分区并进入的bat代码
    这篇文章主要介绍了计算机中怎么实现批处理判断第一个硬盘的最后一个分区并进入的bat代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。下面的代码是比较完美的@echo ...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作