前面的文章已经实现相关的布局,本文接着进行相关的功能实现 本文地址:http://www.cnblogs.com/wuyudong/p/5951794.html,转载请注明出处. 读取系统联系人 当点击“选择联系人”按钮后,弹出联系人列表,读取系统联系人分如下几个步骤: 系统联系人提供了一个内容提供者,通过内容解析器,匹配Url地址 1,内容解析器 2,Url地址,查看系统联系人数据库,内容提供者源码 先看api文档的清单文件,后看java类(联系人数据库有多张表) contents://com…
获取ContentResolver内容解析器对象,通过getContentResolver()方法 调用ContentResolver对象的query()方法,得到raw_contacts表里面的数据,得到Cursor对象 参数:Uri对象,字段String数组 获取Uri对象,通过Uri.parse(“content://com.android.contacts/raw_contacts”)方法, while循环Cursor对象,条件是Cursor对象moveToNext()方法为真 调用Cu…
在<Android 手机卫士--md5加密过程>中已经实现了加密类,这里接着实现手机防盗功能 本文地址:http://www.cnblogs.com/wuyudong/p/5941959.html,转载请注明出处. 手机防盗业务逻辑分析 输入密码成功后,根据是否设置完成四个导航界面决定跳转到导航界面一,还是手机防盗列表界面 1,跳转到导航界面的第1个,描述功能 跳转到导航界面的第2个,必须,绑定sim卡,才可以跳转到第三个界面 跳转到导航界面的第3个,必须输入电话号码,(两种途径(1,输入2,…
本文接着实现“确认密码”功能,也即是用户以前设置过密码,现在只需要输入确认密码 本文地址:http://www.cnblogs.com/wuyudong/p/5940718.html,转载请注明出处. 布局文件和<Android 手机卫士--设置密码对话框>中的布局基本类似,所有copy一下,修改一点细节就搞定: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and…
在<Android 手机卫士--解析json与消息机制发送不同类型消息>一文中,消息机制发送不同类型的信息还没有完全实现,在出现异常的时候,应该弹出吐司提示异常,代码如下: private Handler mHandler = new Handler() { // public void handleMessage(android.os.Message msg) { switch (msg.what) { case UPDATE_VERSION: //弹出对话框,提示用户更新 //showUp…
35.内容提供者:ContentResolver 用内容提供者来获取联系人信息 35-1:权限 <!-- 对联系人的读.写权限 --> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 35-2:新建实体类存放…
本文来实现<Android 手机卫士--导航界面1的布局编写>中的图片选择器部分的代码. 本文地址:http://www.cnblogs.com/wuyudong/p/5944356.html,转载请注明出处. 这个可以参考官网提供的API文档 图片选择器编写 在选中和未选中的过程中,切换展示图片 http://wear.techbrood.com/guide/practices/screens_support.html 依次选择如下条目:AppResource--->Resource…
在<Android 手机卫士--打包生成apk维护到服务器>一文中,实现了新版本的apk到服务器,当打开客户端apk的时候,发现有新版本,提示更新.还实现了利用xutils工具实现了从服务器端下载apk 本文地址:http://www.cnblogs.com/wuyudong/p/5903484.html,转载请注明源地址. 本文实现下载本机apk的安装,过程很简单,参考<Android APK的安装> 代码如下: /** * 安装对应的apk * @param file 安装文件…
  [转] 原文              Android 手机上获取手机当前上网IP地址                (手机网关给手机号分配的IP) 每个手机上网通过移动网关的时候,网关都会给该手机号分配一个IP地址(当然这个IP地址会在下线上线后会改变,网关都有记录的) 现在做的应用需要获取该IP地址,提交给服务器,代码如下: [java] view plain copy /** * 用来获取手机拨号上网(包括CTWAP和CTNET)时由PDSN分配给手机终端的源IP地址. * * @re…
Android精选源码 android身份证.银行卡号扫描源码 android仿bilibili客户端 android一款3D 指南针 源码 android手机卫士app源码 android提醒应用,Material 风格,可以设置重复提醒 android带箭头指示选中位置 RecyclerView实现的广告图轮播,消息轮播,简单易用 android商品条形码.二维码搜索源码 android全局调整字号源码 android全球动画精选源码 Android优质博客 基于RecyclerView a…
本篇开始讲如何从Android中得到本机联系人的信息.由于Android较快的版本升级,部分API已经发生了变化.本篇探究的通过ContentProvider机制获取联系人的API从Android2.0开始做了很大调整,原来的android.provider.Contacts类及其下相关类由android.provider.ContactsContract代替.原类体系标记为Deprecated(废弃),因为兼容的原因目前还存在,但不保证以后的更新版本中完全丢弃. 所以本文先从Android2.…
内容提供折详细理论知识请参考之前的博文:http://blog.csdn.net/qq_32059827/article/details/51646513 这里新建了三个联系人信息,通过查看系统联系人源码知道,对三张表进行操作. 联系人数据库 raw_contacts表: contact_id:联系人id data表:联系人的具体信息,一个信息占一行 data1:信息的具体内容 raw_contact_id:联系人id,描述信息属于哪个联系人 mimetype_id:描述信息是属于什么类型 mi…
继续N天前的项目 开启服务监听手机来电,查询数据库,显示归属地 详细内容可以参考这篇博文:http://www.cnblogs.com/taoshihan/p/5331232.html AddressService.java package com.qingguow.mobilesafe.service; import com.qingguow.mobilesafe.utils.NumberQueryAddressUtil; import android.app.Service; import…
// 取得Intent中的頭像 ivShowImage = (ImageView) findViewById(R.id.call_log_detail_contact_img); //通话电话号码获取头像uri Uri uriNumber2Contacts = Uri .parse("content://com.android.contacts/" + "data/phones/filter/" + strPhoneNumber); Cursor cursorCan…
xUtils简介 xUtils 包含了很多实用的android工具. xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls最低兼容android 2.2 (api level 8) 本文地址:http://www.cnblogs.com/wuyudong/p/5902876.html,转载请注明源地址. 目前xUtils主要有四大模块: DbU…
splash界面的细节 ctrl + O 搜索 在去标题的时候,对话框主题被去掉了,有点丑,现在既要有新版本的对话框又不显示标题 把清单文件中activity节点的主题去掉 进入到application节点的样式设置文件里面,添加一句 <item name="android:windowNoTitle">true</item> 设置点返回和空白地方对话框不消失 调用AlertDialog.Builer对象的setCancelable(false),强制升级的时候…
两个方案:1 通过android.permission.READ_PHONE_STATE读取  2 通过短信过滤,读取手机号. 按照第1个方案,AndroidManifest.xml需要添加 <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 并创建一个类PhoneInfo package com.hbj.test; import android.content.Context; imp…
由于我在蓝牙开发方面没有多少经验,如果只是获取一下蓝牙设备名称和连接状态那么前面的那篇文章就已经足够了,接下来的内容是转自一个在蓝牙音乐方面颇有经验的开发者的博客,他的这篇文章对我帮助很大. 今天,先说一下android播放音乐时如何在蓝牙设备上显示歌曲名.歌手.专辑等信息的. 在那个风和日丽.鸟语花香的日子,突然客服Miss Hu发来一个消息,问我说,有用户反馈说在车载蓝牙上播放歌曲看不到歌曲名.歌手.专辑等信息. 我当时虽然不是一脸懵逼,但对这个问题而言确实是只知其一不知其二. 其一,代码中…
所有添加有谷歌账户的设备可以返回一个 ANDROID_ID 所有的CDMA设备对于 ANDROID_ID 和 TelephonyManager.getDeviceId() 返回相同的值(只要在设置时添加了谷歌账户) 唯一标识码这东西在网络应用中非常有用,例如检测是否重复注册之类的. import android.provider.Settings.Secure;private String android_id = Secure.getString(getContext().getContent…
本文地址:http://www.cnblogs.com/wuyudong/p/5904528.html,转载请注明源地址. 本文对之前手机卫士开发进行一个小结. 1.SplashActivity 版本名称的展示,从清单配置文件中获取版本名称,PackageManager 服务端新版本的检测(本地版本号<服务器版本号) 展示logo 2.手机防盗 sim卡绑定:每一款手机都会有相应的卡的序列号,一旦替换掉原有电话卡,序列号会发生改变 3.手机卫士分包 基础课程分包方式,每一个类包名, com.it…
protected void showPopupWindow(View view) { View popupView = View.inflate(this, R.layout.popupwindow_layout, null); TextView tv_uninstall = (TextView) popupView.findViewById(R.id.tv_uninstall); TextView tv_start = (TextView) popupView.findViewById(R.…
转载请注明出处:http://blog.csdn.net/jason_src/article/details/37757661 获取Android手机上其它应用的包名及版本方法有非常多,能够通过AAPT从APK包中直接获取.也能够通过代码在手机上获取.显然,对于产品或者用户来说要获取这些信息,在手机上获取更为简便. 以下我们来看下怎样在手机上获取其它应用的包名.版本. 核心:通过PackageManager能够获取到我们想要的信息,比如:程序图标.程序名称.包名.VersionName.Vers…
手机定位的三种方式:网络定位,基站定位,GPS定位 网络定位,手机连上wifi 2g 3g的时候,手机会有一个ip,误差很大 基站定位,精确度与基站的多少有关,几十米到几公里的误差 GPS定位,至少需要三颗卫星才能定位,在空旷的地方准确 手机使用A-GPS需要网络来辅助定位,定位速度快,网络记录了上次的卫星轨道, 获取LocationManager对象,通过getSystemService(LOCATION_SERVICE) 调用LocationManager对象的requestLocation…
TextView控件设置单行显示 android:singleLine=”true” 设置TextView开始的位置显示省略号,android:ellipsize=”start” 设置滚动属性,android:ellipsize=”marquee” 当控件有焦点的时候,才会调用那个滚动效果 新建一个ui包 新建一个类FocusedTextView继承系统的TextView 重写构造方法 重写isFoused()方法,返回true,就可以让它生来就有焦点,其实并没有焦点,只是欺骗了android系…
按照模块组织代码的包结构:各个模块之间的业务是独立的 风行网 ----播放器 com.funshion.android.player ----下载模块 com.funshion.android.download ----联网     com.funshion.android.network 按照类型组织代码的包结构 -----界面 com.tsh.activity -----自定义界面 com.tsh.ui -----业务逻辑  com.tsh.engine 例如:联网 -----持久化 com…
获取Android手机上其他应用的包名及版本号方法有很多,可以通过AAPT从APK包中直接获取,也可以通过代码在手机上获取.显然,对于产品或者用户来说要获取这些信息,在手机上获取更为简便. 下面我们来看下如何在手机上获取其他应用的包名.版本号. 核心:通过PackageManager可以获取到我们想要的信息,例如:程序图标.程序名称.包名.VersionName.VersionCode等. /* * @Author Sun Ruichuan * */ public ArrayList<HashM…
现在开始具体 处理每一个导航页面的逻辑,首先看第二个导航页 本文地址:http://www.cnblogs.com/wuyudong/p/5949775.html,转载请注明出处. 这里需要实现绑定sim卡序列号的功能,注意添加相应的权限:uses-permission android:name="android.permission.READ_PHONE_STATE" private SettingItemView siv_sim_bound; @Override protected…
本文地址:http://www.cnblogs.com/wuyudong/p/5903707.html,转载请注明源地址. 在手机卫士之前的版本升级的对话框中: 有的用户暂时不想更新,没有点击“稍后再说”,而是选择点击回退按键,那么这时候的逻辑应该是让用户进入home界面而不是splash界面.所以需要添加代码逻辑来控制,添加的代码如下: builder.setOnCancelListener(new OnCancelListener() { @Override public void onCa…
清理单个应用缓存 通过反射调用方法 需要权限:android.permission.DELETE_CACHE_FILES. 以上权限为系统权限,手机卫士应用为用户应用,不能拿到此权限 换思路: 调用系统清除缓存的界面,让用户在系统清除缓存界面实现清除逻辑 查找系统清除缓存的界面方法:…
一般的手机没有root权限,进不去data/data目录,当手机刷机了后,拥有root权限,就可以进入data/data目录,查看我们保存的密码文件,因此我们需要对存入的密码进行MD5加密 获取MessageDigest信息摘要器对象,调用MessageDigest.getInstance(“md5”),参数:规则 调用MessageDigest对象的digest(bytes)方法,得到加密的byte[] 数组,参数:byte[] 数组,调用String对象的getBytes()方法获取到字节数…