在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → android 最新版超高仿微信源码。

android 最新版超高仿微信源码。

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:29.05M
  • 下载次数:59
  • 浏览次数:771
  • 发布时间:2017-02-16
  • 实例类别:Android平台开发
  • 发 布 人:zhuwei154
  • 文件格式:.zip
  • 所需积分:2

实例介绍

【实例简介】测试账号: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);
    }
}


实例下载地址

android 最新版超高仿微信源码。

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警