手机管理工具类 → AppPhoneMgr
来源:互联网 发布:苹果mac爱奇艺视频 编辑:程序博客网 时间:2024/06/06 05:17
packagecom.jingewenku.abrahamcaijin.commonutil; import android.app.Activity; import android.app.PendingIntent; import android.content.*; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.content.res.Configuration; import android.database.Cursor; import android.graphics.Bitmap; import android.net.Uri; import android.os.Environment; import android.os.StatFs; import android.os.SystemClock; import android.provider.ContactsContract; import android.provider.MediaStore; import android.provider.Settings; import android.telephony.PhoneNumberUtils; import android.telephony.SmsManager; import android.telephony.TelephonyManager; import android.util.Log; import android.util.Xml; import android.view.WindowManager; import android.widget.Toast; import com.jingewenku.abrahamcaijin.commonutil.klog.KLog; import org.xmlpull.v1.XmlSerializer; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 主要功能:手机管理工具类 * * @Prject: CommonUtilLibrary * @Package: com.jingewenku.abrahamcaijin.commonutil * @author: AbrahamCaiJin * @date: 2017年05月03日 16:29 * @Copyright: 个人版权所有 * @Company: * @version: 1.0.0 */ 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; } /** * 获取手机系统版本号 * * @return */ public int getSDKVersionNumber() { int sdkVersion; try { sdkVersion = Integer.valueOf(android.os.Build.VERSION.SDK_INT); } catch (NumberFormatException e) { e.printStackTrace(); sdkVersion = 0; } return sdkVersion; } /** * 获取手机型号 */ public String getPhoneModel() { return android.os.Build.MODEL; } /** * 获取手机宽度 */ @SuppressWarnings("deprecation") public int getPhoneWidth(Contextcontext) { WindowManager wm = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); return wm.getDefaultDisplay().getWidth(); } /** * 获取手机高度 * * @param context */ @SuppressWarnings("deprecation") public int getPhoneHeight(Contextcontext) { WindowManager wm = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); return wm.getDefaultDisplay().getHeight(); } /** * 获取手机imei串号 ,GSM手机的 IMEI 和 CDMA手机的 MEID. * * @param context */ public String getPhoneImei(Contextcontext) { TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); if (tm == null) return null; return tm.getDeviceId(); } /** * 获取手机sim卡号 * * @param context */ public String getPhoneSim(Contextcontext) { TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); if (tm == null) return null; return tm.getSubscriberId(); } /** * 获取手机号 * * @param context */ public String getPhoneNum(Contextcontext) { TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); if (tm == null) return null; return tm.getLine1Number(); } /** * 判断sd卡是否挂载 */ public boolean isSDCardMount() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { return true; } else { return false; } } /** * 获取sd卡剩余空间的大小 */ @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 } /** * 获取sd卡空间的总大小 */ @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(Contextcontext) { return (context.getResources().getConfiguration().screenLayout& Configuration.SCREENLAYOUT_SIZE_MASK)>= Configuration.SCREENLAYOUT_SIZE_LARGE; } /** * 判断一个apk是否安装 * * @param context * @param packageName */ public boolean isApkInstalled(Contextcontext, String packageName) { PackageManager pm = context.getPackageManager(); try { pm.getPackageInfo(packageName,0); } catch (NameNotFoundException e) { return false; } return true; } // /** // * 拨打电话 // * // * @param context // * @param phoneNum // */ // 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 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(Contextcontext) throws NameNotFoundException { PackageManager pm = context.getPackageManager(); PackageInfo packageInfo = pm.getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS); return getAppPermissions(packageInfo); } public String[] getAppPermissions(PackageInfopackageInfo) 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(Contextcontext, 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(Contextcontext, String pkg) { Intent startIntent = context.getPackageManager() .getLaunchIntentForPackage(pkg); startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(startIntent); } /** * 卸载指定包名的应用 */ public void unInstallApk(Contextcontext, 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(); // } /** * 直接呼叫指定的号码(需要<uses-permission * android:name="android.permission.CALL_PHONE"/>权限) * * @param mContext * 上下文Context * @param phoneNumber * 需要呼叫的手机号码 */ public static void callPhone(Context mContext, String phoneNumber) { Uri uri = Uri.parse("tel:"+ phoneNumber); Intent call = new Intent(Intent.ACTION_CALL, uri); mContext.startActivity(call); } /** * 跳转至拨号界面 * * @param mContext * 上下文Context * @param phoneNumber * 需要呼叫的手机号码 */ public static void toCallPhoneActivity(Context mContext, String phoneNumber) { Uri uri = Uri.parse("tel:"+ phoneNumber); Intent call = new Intent(Intent.ACTION_DIAL, uri); mContext.startActivity(call); } /** * 直接调用短信API发送信息(设置监听发送和接收状态) * * @param strPhone * 手机号码 * @param strMsgContext * 短信内容 */ public static void sendMessage(final Context mContext, final String strPhone, final String strMsgContext) { // 处理返回的发送状态 String SENT_SMS_ACTION = "SENT_SMS_ACTION"; Intent sentIntent = new Intent(SENT_SMS_ACTION); PendingIntent sendIntent = PendingIntent.getBroadcast(mContext,0, sentIntent, 0); // register the Broadcast Receivers mContext.registerReceiver(newBroadcastReceiver() { @Override public void onReceive(Context_context, Intent _intent) { switch (getResultCode()) { case Activity.RESULT_OK: Toast.makeText(mContext,"短信发送成功",Toast.LENGTH_SHORT) .show(); break; case SmsManager.RESULT_ERROR_GENERIC_FAILURE: break; case SmsManager.RESULT_ERROR_RADIO_OFF: break; case SmsManager.RESULT_ERROR_NULL_PDU: break; } } }, new IntentFilter(SENT_SMS_ACTION)); // 处理返回的接收状态 String DELIVERED_SMS_ACTION ="DELIVERED_SMS_ACTION"; // create the deilverIntent parameter Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION); PendingIntent backIntent = PendingIntent.getBroadcast(mContext,0, deliverIntent, 0); mContext.registerReceiver(newBroadcastReceiver() { @Override public void onReceive(Context_context, Intent _intent) { Toast.makeText(mContext, strPhone+ "已经成功接收", Toast.LENGTH_SHORT).show(); } }, new IntentFilter(DELIVERED_SMS_ACTION)); // 拆分短信内容(手机短信长度限制) SmsManager smsManager = SmsManager.getDefault(); ArrayList<String> msgList= smsManager.divideMessage(strMsgContext); for (String text: msgList) { smsManager.sendTextMessage(strPhone,null, text, sendIntent, backIntent); } } /** * 跳转至发送短信界面(自动设置接收方的号码) * * @param mContext * Activity * @param strPhone * 手机号码 * @param strMsgContext * 短信内容 */ public static void toSendMessageActivity(Context mContext, String strPhone, String strMsgContext) { if (PhoneNumberUtils.isGlobalPhoneNumber(strPhone)) { Uri uri = Uri.parse("smsto:"+ strPhone); Intent sendIntent = new Intent(Intent.ACTION_VIEW, uri); sendIntent.putExtra("sms_body", strMsgContext); mContext.startActivity(sendIntent); } } /** * 跳转至联系人选择界面 * * @param mContext * 上下文 * @param requestCode * 请求返回区分代码 */ public static void toChooseContactsList(Activity mContext, int requestCode) { Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); mContext.startActivityForResult(intent, requestCode); } /** * 获取选择的联系人的手机号码 * * @param mContext * 上下文 * @param resultCode * 请求返回Result状态区分代码 * @param data * onActivityResult返回的Intent * @return */ @SuppressWarnings("deprecation") public static String getChoosedPhoneNumber(Activity mContext, int resultCode, Intent data) { // 返回结果 String phoneResult = ""; if (Activity.RESULT_OK== resultCode) { Uri uri = data.getData(); Cursor mCursor = mContext.managedQuery(uri,null, null, null, null); mCursor.moveToFirst(); int phoneColumn = mCursor .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER); int phoneNum = mCursor.getInt(phoneColumn); if (phoneNum > 0) { // 获得联系人的ID号 int idColumn = mCursor .getColumnIndex(ContactsContract.Contacts._ID); String contactId = mCursor.getString(idColumn); // 获得联系人的电话号码的cursor; Cursor phones = mContext.getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "+ contactId, null, null); if (phones.moveToFirst()) { // 遍历所有的电话号码 for (; !phones.isAfterLast(); phones.moveToNext()) { int index = phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); int typeindex = phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE); int phone_type = phones.getInt(typeindex); String phoneNumber = phones.getString(index); if (phone_type == 2) { phoneResult = phoneNumber; } } if (!phones.isClosed()) { phones.close(); } } } // 关闭游标 mCursor.close(); } return phoneResult; } /** * 跳转至拍照程序界面 * * @param mContext * 上下文 * @param requestCode * 请求返回Result区分代码 */ public static void toCameraActivity(Activity mContext, int requestCode) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); mContext.startActivityForResult(intent, requestCode); } /** * 跳转至相册选择界面 * * @param mContext * 上下文 * @param requestCode */ public static void toImagePickerActivity(Activity mContext, int requestCode) { Intent intent = new Intent(Intent.ACTION_PICK,null); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); mContext.startActivityForResult(intent, requestCode); } /** * 获得选中相册的图片 * * @param mContext * 上下文 * @param data * onActivityResult返回的Intent * @return */ @SuppressWarnings({ "deprecation","unused" }) public static Bitmap getChoosedImage(Activity mContext, Intent data) { if (data == null) { return null; } Bitmap bm = null; // 外界的程序访问ContentProvider所提供数据 可以通过ContentResolver接口 ContentResolver resolver = mContext.getContentResolver(); // 此处的用于判断接收的Activity是不是你想要的那个 try { Uri originalUri = data.getData(); // 获得图片的uri bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); // 显得到bitmap图片 // 这里开始的第二部分,获取图片的路径: String[] proj = { MediaStore.Images.Media.DATA }; // 好像是android多媒体数据库的封装接口,具体的看Android文档 Cursor cursor = mContext.managedQuery(originalUri, proj,null, null, null); // 按我个人理解 这个是获得用户选择的图片的索引值 int column_index = cursor .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); // 将光标移至开头 ,这个很重要,不小心很容易引起越界 cursor.moveToFirst(); // 最后根据索引值获取图片路径 String path = cursor.getString(column_index); // 不用了关闭游标 cursor.close(); } catch (Exception e) { KLog.e("ToolPhone", e.getMessage()); } return bm; } /** * 调用本地浏览器打开一个网页 * * @param mContext * 上下文 * @param strSiteUrl * 网页地址 */ public static void openWebSite(Context mContext, String strSiteUrl) { Intent webIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(strSiteUrl)); mContext.startActivity(webIntent); } /** * 跳转至系统设置界面 * * @param mContext * 上下文 */ public static void toSettingActivity(Context mContext) { Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS); mContext.startActivity(settingsIntent); } /** * 跳转至WIFI设置界面 * * @param mContext * 上下文 */ public static void toWIFISettingActivity(Context mContext) { Intent wifiSettingsIntent = new Intent(Settings.ACTION_WIFI_SETTINGS); mContext.startActivity(wifiSettingsIntent); } /** * 启动本地应用打开PDF * * @param mContext * 上下文 * @param filePath * 文件路径 */ public static void openPDFFile(Context mContext, String filePath) { try { File file = new File(filePath); if (file.exists()) { Uri path = Uri.fromFile(file); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(path,"application/pdf"); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); mContext.startActivity(intent); } } catch (Exception e) { Toast.makeText(mContext,"未检测到可打开PDF相关软件",Toast.LENGTH_SHORT) .show(); } } /** * 启动本地应用打开PDF * * @param mContext * 上下文 * @param filePath * 文件路径 */ public static void openWordFile(Context mContext, String filePath) { try { File file = new File(filePath); if (file.exists()) { Uri path = Uri.fromFile(file); Intent intent = new Intent("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setDataAndType(path,"application/msword"); mContext.startActivity(intent); } } catch (Exception e) { Toast.makeText(mContext,"未检测到可打开Word文档相关软件",Toast.LENGTH_SHORT) .show(); } } /** * 调用WPS打开office文档 http://bbs.wps.cn/thread-22349340-1-1.html * * @param mContext * 上下文 * @param filePath * 文件路径 */ public static void openOfficeByWPS(Context mContext, String filePath) { try { // 文件存在性检查 File file = new File(filePath); if (!file.exists()) { Toast.makeText(mContext, filePath+ "文件路径不存在", Toast.LENGTH_SHORT).show(); return; } // 检查是否安装WPS String wpsPackageEng = "cn.wps.moffice_eng";// 普通版与英文版一样 // String wpsActivity = // "cn.wps.moffice.documentmanager.PreStartActivity"; String wpsActivity2 = "cn.wps.moffice.documentmanager.PreStartActivity2";// 默认第三方程序启动 Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.setClassName(wpsPackageEng, wpsActivity2); Uri uri = Uri.fromFile(newFile(filePath)); intent.setData(uri); mContext.startActivity(intent); } catch (ActivityNotFoundException e) { Toast.makeText(mContext,"本地未安装WPS",Toast.LENGTH_SHORT).show(); } catch (Exception e) { Toast.makeText(mContext,"打开文档失败",Toast.LENGTH_SHORT).show(); } } /** * 判断是否安装指定包名的APP * * @param mContext * 上下文 * @param packageName * 包路径 * @return */ @SuppressWarnings("unused") public static boolean isInstalledApp(Context mContext, String packageName) { if (packageName == null || "".equals(packageName)) { return false; } try { ApplicationInfo info = mContext.getPackageManager() .getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true; } catch (NameNotFoundException e) { return false; } } /** * 判断是否存在指定的Activity * * @param mContext * 上下文 * @param packageName * 包名 * @param className * activity全路径类名 * @return */ public static boolean isExistActivity(Context mContext, String packageName, String className) { Boolean result = true; Intent intent = new Intent(); intent.setClassName(packageName, className); if (mContext.getPackageManager().resolveActivity(intent,0) == null) { result = false; } else if (intent.resolveActivity(mContext.getPackageManager())== null) { result = false; } else { List<ResolveInfo> list= mContext.getPackageManager() .queryIntentActivities(intent, 0); if (list.size()== 0) { result = false; } } return result; } /** * 获取移动终端类型 * * @param context 上下文 * @return 手机制式 * <ul> * <li>{@link TelephonyManager#PHONE_TYPE_NONE } : 0 手机制式未知</li> * <li>{@link TelephonyManager#PHONE_TYPE_GSM } : 1 手机制式为GSM,移动和联通</li> * <li>{@link TelephonyManager#PHONE_TYPE_CDMA } : 2 手机制式为CDMA,电信</li> * <li>{@link TelephonyManager#PHONE_TYPE_SIP } : 3</li> * </ul> */ public static int getPhoneType(Context context) { TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); return tm != null ? tm.getPhoneType(): -1; } /** * 判断sim卡是否准备好 * * @return {@code true}: 是<br>{@code false}: 否 */ public static boolean isSimCardReady(Context context) { TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); return tm != null && tm.getSimState()== TelephonyManager.SIM_STATE_READY; } /** * 获取手机状态信息 * <p>需添加权限 {@code <uses-permission android:name="android.permission.READ_PHONE_STATE"/>}</p> * * @param context 上下文 * @return DeviceId(IMEI) = 99000311726612<br> * DeviceSoftwareVersion = 00<br> * Line1Number =<br> * NetworkCountryIso = cn<br> * NetworkOperator = 46003<br> * NetworkOperatorName = 中国电信<br> * NetworkType = 6<br> * honeType = 2<br> * SimCountryIso = cn<br> * SimOperator = 46003<br> * SimOperatorName = 中国电信<br> * SimSerialNumber = 89860315045710604022<br> * SimState = 5<br> * SubscriberId(IMSI) = 460030419724900<br> * VoiceMailNumber = *86<br> */ public static String getPhoneStatus(Context context) { TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); String str = ""; str += "DeviceId(IMEI) = " + tm.getDeviceId()+ "\n"; str += "DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion()+ "\n"; str += "Line1Number = " + tm.getLine1Number()+ "\n"; str += "NetworkCountryIso = " + tm.getNetworkCountryIso()+ "\n"; str += "NetworkOperator = " + tm.getNetworkOperator()+ "\n"; str += "NetworkOperatorName = " + tm.getNetworkOperatorName()+ "\n"; str += "NetworkType = " + tm.getNetworkType()+ "\n"; str += "honeType = "+ tm.getPhoneType()+ "\n"; str += "SimCountryIso = " + tm.getSimCountryIso()+ "\n"; str += "SimOperator = " + tm.getSimOperator()+ "\n"; str += "SimOperatorName = " + tm.getSimOperatorName()+ "\n"; str += "SimSerialNumber = " + tm.getSimSerialNumber()+ "\n"; str += "SimState = "+ tm.getSimState()+ "\n"; str += "SubscriberId(IMSI) = " + tm.getSubscriberId()+ "\n"; str += "VoiceMailNumber = " + tm.getVoiceMailNumber()+ "\n"; return str; } /** * 获取手机短信并保存到xml中 * <p>需添加权限 {@code <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>}</p> * <p>需添加权限 {@code <uses-permission android:name="android.permission.READ_SMS"/>}</p> * * @param context 上下文 */ public static void getAllSMS(Context context) { // 1.获取短信 // 1.1获取内容解析者 ContentResolver resolver = context.getContentResolver(); // 1.2获取内容提供者地址 sms,sms表的地址:null 不写 // 1.3获取查询路径 Uri uri = Uri.parse("content://sms"); // 1.4.查询操作 // projection : 查询的字段 // selection : 查询的条件 // selectionArgs : 查询条件的参数 // sortOrder : 排序 Cursor cursor = resolver.query(uri,new String[]{"address","date","type","body"},null, null, null); // 设置最大进度 int count = cursor.getCount();//获取短信的个数 // 2.备份短信 // 2.1获取xml序列器 XmlSerializer xmlSerializer = Xml.newSerializer(); try { // 2.2设置xml文件保存的路径 // os : 保存的位置 // encoding : 编码格式 xmlSerializer.setOutput(newFileOutputStream(newFile("/mnt/sdcard/backupsms.xml")),"utf-8"); // 2.3设置头信息 // standalone : 是否独立保存 xmlSerializer.startDocument("utf-8",true); // 2.4设置根标签 xmlSerializer.startTag(null,"smss"); // 1.5.解析cursor while (cursor.moveToNext()) { SystemClock.sleep(1000); // 2.5设置短信的标签 xmlSerializer.startTag(null,"sms"); // 2.6设置文本内容的标签 xmlSerializer.startTag(null,"address"); String address = cursor.getString(0); // 2.7设置文本内容 xmlSerializer.text(address); xmlSerializer.endTag(null,"address"); xmlSerializer.startTag(null,"date"); String date = cursor.getString(1); xmlSerializer.text(date); xmlSerializer.endTag(null,"date"); xmlSerializer.startTag(null,"type"); String type = cursor.getString(2); xmlSerializer.text(type); xmlSerializer.endTag(null,"type"); xmlSerializer.startTag(null,"body"); String body = cursor.getString(3); xmlSerializer.text(body); xmlSerializer.endTag(null,"body"); xmlSerializer.endTag(null,"sms"); System.out.println("address:"+ address + " date:"+ date + " type:"+ type + " body:"+ body); } xmlSerializer.endTag(null,"smss"); xmlSerializer.endDocument(); // 2.8将数据刷新到文件中 xmlSerializer.flush(); } catch (Exception e) { e.printStackTrace(); } } }
阅读全文
0 0
- 手机管理工具类 → AppPhoneMgr
- Android手机管理工具类
- App手机网络管理工具类
- 官方手机管理工具ddms介绍
- 手机版SQLite数据库管理工具
- Wifi管理工具类 → AppWifiHelperMgr
- 安豆苗:轻量级Android手机管理工具
- IOS文件名称管理工具类
- android内存管理工具类
- Android Activity管理工具类
- Activity管理工具类AppManager
- Activity管理工具类AppManager
- Activity管理工具类AppManager
- Android堆栈管理工具类
- Android Activity管理工具类
- ActivityCollectorUtils ~~Activitty管理工具类
- mybatis sqlSession管理工具类
- 权限管理工具类
- 遍历_EPROCESS->Vm->WorkingSetExpansionLinks链表枚举进程
- 文章标题
- iOS获取设备常用健康数据
- C# 操作本地SQL Server实现增删改查
- Application.ProcessMessages
- 手机管理工具类 → AppPhoneMgr
- 设计模式--命令模式
- Androdid中ExecutorService内存泄露原因分析
- 【实战】嵌入式linux修改内核启动的LOGO界面
- tensorflow 学习笔记(2)-basic_example
- iOS 微信登录集成让人抓不着头脑的问题
- 每日一学(八) Android动画---Tween动画的xml实现
- Python bug整理
- 信息熵、信息增益与信息增益率