实例介绍
【实例简介】测试账号:15918013302 密码:123456
【实例截图】
【核心代码】import java.util.List;
import net.tsz.afinal.FinalDb;
import android.app.Service;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.IBinder;
import android.provider.ContactsContract;
import android.text.TextUtils;
import com.alibaba.fastjson.JSON;
import com.juns.wechat.Constants;
import com.juns.wechat.GloableParams;
import com.juns.wechat.bean.GroupInfo;
import com.juns.wechat.bean.User;
import com.juns.wechat.common.Utils;
import com.juns.wechat.net.BaseJsonRes;
import com.juns.wechat.net.NetClient;
public class UpdateService extends Service {
protected NetClient netClient;
protected FinalDb db;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
netClient = new NetClient(this);
db = FinalDb.create(this, Constants.DB_NAME, false);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
int RunCount = Utils.getIntValue(this, "RUN_COUNT");
if (RunCount % 10 == 0) {
initUserList();
initGroupList();
String str_contact = Utils.getValue(this, Constants.ContactMsg);
PackageManager pm = getPackageManager();
boolean permission = (PackageManager.PERMISSION_GRANTED == pm
.checkPermission("android.permission.READ_CONTACTS",
"com.juns.wechat"));
if (TextUtils.isEmpty(str_contact) && permission) {
str_contact = getContact();
Utils.putValue(this, Constants.ContactMsg, str_contact);
}
}
return super.onStartCommand(intent, flags, startId);
}
// 获取群组列表
private void initGroupList() {
GloableParams.ListGroupInfos = db.findAll(GroupInfo.class);
netClient.post(Constants.getGroupListURL, null, new BaseJsonRes() {
@Override
public void onMySuccess(String data) {
GloableParams.ListGroupInfos = JSON.parseArray(data,
GroupInfo.class);
for (GroupInfo group : GloableParams.ListGroupInfos) {
if (db.findById(group.getId(), GroupInfo.class) != null)
db.deleteById(GroupInfo.class, group.getId());
db.save(group);
GloableParams.GroupInfos.put(group.getGroup_id(), group);
}
sendBrodcast("GroupList");
}
@Override
public void onMyFailure() {
// initGroupList();
}
});
}
// 获取好友列表和订阅号
private void initUserList() {
GloableParams.UserInfos = db.findAll(User.class);
netClient.post(Constants.getUserInfoURL, null, new BaseJsonRes() {
@Override
public void onMySuccess(String data) {
List<User> new_users = JSON.parseArray(data, User.class);
for (User user : new_users) {
if (user.getUserName() == null) {
user.setUserName("WX" user.getTelephone());
new_users.remove(user);
new_users.add(user);
}
if (db.findById(user.getId(), User.class) != null)
db.deleteById(User.class, user.getId());
db.save(user);
GloableParams.Users.put(user.getTelephone(), user);
}
sendBrodcast("UserList");
}
@Override
public void onMyFailure() {
// initUserList();
}
});
}
public String getContact() {
// 获得所有的联系人
String strTelphones = "";
String strNames = "";
Cursor cur = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
// 循环遍历
if (cur.moveToFirst()) {
int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);
int displayNameColumn = cur
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
do {
// 获得联系人的ID号
String contactId = cur.getString(idColumn);
// 获得联系人姓名
String disPlayName = cur.getString(displayNameColumn);
// 查看该联系人有多少个电话号码。如果没有这返回值为0
int phoneCount = cur
.getInt(cur
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (phoneCount > 0) {
// 获得联系人的电话号码
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
" = " contactId, null, null);
if (phones.moveToFirst()) {
do { // 遍历所有的电话号码
String phoneNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
if (phoneNumber.startsWith(" 186")) {
phoneNumber = phoneNumber.substring(4);
}
if (Utils.isMobileNO(phoneNumber)) {
strTelphones = strTelphones "'" phoneNumber
"',";
strNames = strNames "',";
}
} while (phones.moveToNext());
}
}
} while (cur.moveToNext());
}
if (strTelphones.length() > 0 && strNames.length() > 0) {
strTelphones = strTelphones.substring(0, strTelphones.length() - 1);
strNames = strNames.substring(0, strNames.length() - 1);
}
return strTelphones;
}
private void sendBrodcast(String Action) {
Intent intent = new Intent();
intent.setAction("com.juns.wechat.Brodcast");
intent.putExtra("Action", Action);
sendBroadcast(intent);
}
}
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论