电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android短信備份及數據插入實現代碼解析

瀏覽:23日期:2022-09-21 17:06:43

實現備份短信到xml文件和像短信中插入一條數據

一、實現短信將備份到xml文件中

在布局文件中定義一個按鈕,定義點擊事件為copyClick

MainActivity.java:

package com.lgqrlchinese.heima76android_copysms;import android.Manifest;import android.content.pm.PackageManager;import android.database.Cursor;import android.net.Uri;import android.os.Environment;import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Xml;import android.view.View;import android.widget.Toast;import org.xmlpull.v1.XmlSerializer;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class MainActivity extends AppCompatActivity { //動態獲取權限 static final String[] PERMISSION = new String[]{ Manifest.permission.READ_SMS, Manifest.permission.WRITE_EXTERNAL_STORAGE, }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //動態獲取權限 MyPermission(); } //點擊按鈕查詢短信數據庫內容,然后備份 public void copyClick(View view) { try { //獲取xml序列化實例 XmlSerializer serializer = Xml.newSerializer(); //設置序列化參數 File file = new File(Environment.getExternalStorageDirectory().getPath(), 'smsBackUp.xml'); FileOutputStream fos = new FileOutputStream(file); serializer.setOutput(fos, 'utf-8'); //開始寫xml文檔的開頭 serializer.startDocument('utf-8', true); //開始寫根節點 serializer.startTag(null, 'smss'); //短信數據庫內容也通過內容提供者暴露出來,所以我們只需要通過內容解析者去操作數據庫 Uri uri = Uri.parse('content://sms/'); Cursor cursor = getContentResolver().query(uri, new String[]{'address', 'date', 'body'}, null, null, null); while (cursor.moveToNext()) {String address = cursor.getString(0);String date = cursor.getString(1);String body = cursor.getString(2);//寫sms節點serializer.startTag(null, 'sms');//寫address節點serializer.startTag(null, 'address');serializer.text(address);serializer.endTag(null, 'address');//寫body節點serializer.startTag(null, 'body');serializer.text(body);serializer.endTag(null, 'body');//寫date節點serializer.startTag(null, 'date');serializer.text(date);serializer.endTag(null, 'date');serializer.endTag(null, 'sms'); } serializer.endTag(null, 'smss'); serializer.endDocument(); } catch (FileNotFoundException e) { e.printStackTrace(); System.out.println('異常1'); } catch (IOException e) { e.printStackTrace(); System.out.println('異常2'); } } //動態獲取權限 public void MyPermission() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { //Android 6.0申請權限 ActivityCompat.requestPermissions(this, PERMISSION, 1); } else { Toast.makeText(this, '成功', Toast.LENGTH_SHORT).show(); } }}

當然權限是必要的

<uses-permission android:name='android.permission.READ_SMS'/> <uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE'/>

這樣就在SD卡根目錄備份了xml文件

在真機6.0測試中遇到存儲address崩潰問題,調試好久。先打印addredss,沒有問題;存儲死數據沒有問題,最后發現在輸出打印室有個address為null。查看手機,是因為有個短信草稿,我想了兩個都能想到的的解決辦法:

1.刪除或發送手機里的草稿

2.在代碼中進行判斷

if (address != null) { serializer.startTag(null, 'address'); serializer.text(address); serializer.endTag(null, 'address');} else { serializer.text('這是草稿');}

二、向短信的數據庫中插入數據(5.0及之后就不允許外部應用修改,直允許讀取,不做過多記錄)

import android.Manifest;import android.content.ContentValues;import android.content.pm.PackageManager;import android.net.Uri;import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Toast;public class MainActivity extends AppCompatActivity { //動態獲取權限 static final String[] PERMISSION = new String[]{ Manifest.permission.READ_SMS, }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyPermission(); } //點擊按鈕在短信數據庫插入數據 public void insertClick(View view) { Uri uri = Uri.parse('ocntent://sms'); ContentValues values = new ContentValues(); values.put('address', '17865318803'); values.put('body', '我是你的影子'); values.put('date', System.currentTimeMillis()); getContentResolver().insert(uri, values); } //動態獲取權限 public void MyPermission() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { //Android 6.0申請權限 ActivityCompat.requestPermissions(this, PERMISSION, 1); } else { Toast.makeText(this, '成功', Toast.LENGTH_SHORT).show(); } }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 塑料检查井_双扣聚氯乙烯增强管_双壁波纹管-河南中盈塑料制品有限公司 | 砖机托板价格|免烧砖托板|空心砖托板厂家_山东宏升砖机托板厂 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 悬浮拼装地板_篮球场木地板翻新_运动木地板价格-上海越禾运动地板厂家 | 北京中创汇安科贸有限公司 | 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | 南京欧陆电气股份有限公司-风力发电机官网| 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 西点培训学校_法式西点培训班_西点师培训_西点蛋糕培训-广州烘趣西点烘焙培训学院 | 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | U拓留学雅思一站式服务中心_留学申请_雅思托福培训 | 工业铝型材生产厂家_铝合金型材配件批发精加工定制厂商 - 上海岐易铝业 | 反渗透水处理设备|工业零排放|水厂设备|软化水设备|海南净水设备--海南水处理设备厂家 | 北京开源多邦科技发展有限公司官网 | 智能案卷柜_卷宗柜_钥匙柜_文件流转柜_装备柜_浙江福源智能科技有限公司 | 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 小型铜米机-干式铜米机-杂线全自动铜米机-河南鑫世昌机械制造有限公司 | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 炒货机-炒菜机-炒酱机-炒米机@霍氏机械 | 天助网 - 中小企业全网推广平台_生态整合营销知名服务商_天助网采购优选 | 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 不锈钢闸阀_球阀_蝶阀_止回阀_调节阀_截止阀-可拉伐阀门(上海)有限公司 | 我车网|我关心的汽车资讯_汽车图片_汽车生活! | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 切铝机-数控切割机-型材切割机-铝型材切割机-【昆山邓氏精密机械有限公司】 | 尚为传动-专业高精密蜗轮蜗杆,双导程蜗轮蜗杆,蜗轮蜗杆减速机,蜗杆减速机生产厂家 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 超声波乳化机-超声波分散机|仪-超声波萃取仪-超声波均质机-精浩机械|首页 | 钢丝绳探伤仪-钢丝绳检测仪-钢丝绳探伤设备-洛阳泰斯特探伤技术有限公司 | 广州小程序开发_APP开发公司_分销商城系统定制_小跑科技 | 钢绞线万能材料试验机-全自动恒应力两用机-混凝土恒应力压力试验机-北京科达京威科技发展有限公司 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 杭州成人高考_浙江省成人高考网上报名| 陶氏道康宁消泡剂_瓦克消泡剂_蓝星_海明斯德谦_广百进口消泡剂 | 国资灵活用工平台_全国灵活用工平台前十名-灵活用工结算小帮手 |