13929861564 发表于 2016-1-28 15:53

【转载源码】微信抢红包服务源码

本帖最后由 13929861564 于 2016-1-28 15:56 编辑

源码出处:http://www.happycodeboy.com/index.php/archives/10/

import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.widget.Toast;

import com.codeboy.qianghongbao.job.AccessbilityJob;
import com.codeboy.qianghongbao.job.WechatAccessbilityJob;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
* <p>Created by LeonLee on 15/2/17 下午10:25.</p>
* <p><a href="mailto:codeboy2013@163.com">Email:codeboy2013@163.com</a></p>
*
* 抢红包外挂服务
*/
public class QiangHongBaoService extends AccessibilityService {

    private static final String TAG = "QiangHongBao";

    private static final Class[] ACCESSBILITY_JOBS= {
            WechatAccessbilityJob.class,
    };

    private static QiangHongBaoService service;

    private Config mConfig;
    private List<AccessbilityJob> mAccessbilityJobs;

    @Override
    public void onCreate() {
      super.onCreate();

      mAccessbilityJobs = new ArrayList<>();
      mConfig = new Config(this);

      //初始化辅助插件工作
      for(Class clazz : ACCESSBILITY_JOBS) {
            try {
                Object object = clazz.newInstance();
                if(object instanceof AccessbilityJob) {
                  AccessbilityJob job = (AccessbilityJob) object;
                  job.onCreateJob(this);
                  mAccessbilityJobs.add(job);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
      }
    }

    @Override
    public void onDestroy() {
      super.onDestroy();
      Log.d(TAG, "qianghongbao service destory");
      if(mAccessbilityJobs != null && !mAccessbilityJobs.isEmpty()) {
            for (AccessbilityJob job : mAccessbilityJobs) {
                job.onStopJob();
            }
            mAccessbilityJobs.clear();
      }
      service = null;
      mAccessbilityJobs = null;
      //发送广播,已经断开辅助服务
      Intent intent = new Intent(Config.ACTION_QIANGHONGBAO_SERVICE_DISCONNECT);
      sendBroadcast(intent);
    }

    @Override
    public void onInterrupt() {
      Log.d(TAG, "qianghongbao service interrupt");
      Toast.makeText(this, "中断抢红包服务", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onServiceConnected() {
      super.onServiceConnected();
      service = this;
      //发送广播,已经连接上了
      Intent intent = new Intent(Config.ACTION_QIANGHONGBAO_SERVICE_CONNECT);
      sendBroadcast(intent);
      Toast.makeText(this, "已连接抢红包服务", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
      if(BuildConfig.DEBUG) {
            Log.d(TAG, "事件--->" + event);
      }
      String pkn = String.valueOf(event.getPackageName());
      if(mAccessbilityJobs != null && !mAccessbilityJobs.isEmpty()) {

            for (AccessbilityJob job : mAccessbilityJobs) {
                if(pkn.equals(job.getTargetPackageName()) && job.isEnable()) {
                  job.onReceiveJob(event);
                }
            }
      }
    }

    public Config getConfig() {
      return mConfig;
    }

    /**
   * 判断当前服务是否正在运行
   * */
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    public static boolean isRunning() {
      if(service == null) {
            return false;
      }
      AccessibilityManager accessibilityManager = (AccessibilityManager) service.getSystemService(Context.ACCESSIBILITY_SERVICE);
      AccessibilityServiceInfo info = service.getServiceInfo();
      if(info == null) {
            return false;
      }
      List<AccessibilityServiceInfo> list = accessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC);
      Iterator<AccessibilityServiceInfo> iterator = list.iterator();

      boolean isConnect = false;
      while (iterator.hasNext()) {
            AccessibilityServiceInfo i = iterator.next();
            if(i.getId().equals(info.getId())) {
                isConnect = true;
                break;
            }
      }
      if(!isConnect) {
            return false;
      }
      return true;
    }

}

13929861564 发表于 2016-2-1 14:36

yl笑倾城 发表于 2016-2-1 12:21
apk好像过期不能用了,在模拟器测试不领取

最新版本的微信已经不支持了!

ikeeki 发表于 2016-1-28 15:57

路过支持{:1_918:}

mafei 发表于 2016-1-28 16:19

支持一下

wi5101 发表于 2016-1-28 16:19

看GIF要6秒啊!!!演示网速问题么? 6秒有点慢了。。。

Kenley 发表于 2016-1-28 16:35

这什么源码 小白看不懂{:301_971:}

Cizel 发表于 2016-1-28 20:13

挂github地址比较好~

13929861564 发表于 2016-1-28 21:58

奋斗丶小Z 发表于 2016-1-28 20:13
挂github地址比较好~

好的,下次注意

czy 发表于 2016-1-29 13:22

jokey 发表于 2016-1-29 16:59

源码是E 多好。

yl笑倾城 发表于 2016-2-1 12:21

apk好像过期不能用了,在模拟器测试不领取
页: [1] 2
查看完整版本: 【转载源码】微信抢红包服务源码