package com.zkhb.weixinqinghongbao.service;
import java.util.Date;
import java.util.List;
import android.accessibilityservice.AccessibilityService;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.KeyguardManager;
import android.app.KeyguardManager.KeyguardLock;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Rect;
import android.os.Build;
import android.os.Handler;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.Toast;
import com.zkhb.weixinqinghongbao.MainActivity;
import com.zkhb.weixinqinghongbao.R;
import com.zkhb.weixinqinghongbao.entity.HongBaoInfo;
import com.zkhb.weixinqinghongbao.util.DateFormatUtils;
import com.zkhb.weixinqinghongbao.util.LogUtil;
/**
*
* 抢红包服务
*/
@SuppressLint("NewApi")
public class QiangHongBaoService extends AccessibilityService {
// static final String TAG = "QiangHongBao";
/** 微信的包名*/
static final String WECHAT_PACKAGENAME = "com.tencent.mm";
/** 红包消息的关键字*/
static final String HONGBAO_TEXT_KEY = "[微信红包]";
/** 红包消息的关键字*/
static final String HONGBAO_TEXT_KEY1 = "微信红包";
private static final int ENVELOPE_RETURN = 0;
private static final String LOCK_TAG = "屏幕";
Handler handler = new Handler();
/** 是否在抢红包界面里*/
// public boolean isInMM=false;
/** 是否可以点击*/
// public boolean ISCLICKED=false;
/** 是否进入过拆红包界面*/
public static boolean ISCOMINQIANGCHB=false;
//真正的
public static boolean ISCOMINQIANGCHB2=false;
//真正的判断
public static boolean ISCOMINQIANGCHB3=false;
/** 是否来自通知栏*/
private static boolean ISCOMNOTIFY=false;
private PowerManager pm;
//点亮屏幕
private WakeLock mWakeLock;
//解锁锁定屏幕
private KeyguardLock keyguardLock;
/**判断之前用户是否锁屏 */
private static boolean islock=false;
/**通知服务 */
private NotificationManager n_manager;
public void unlock(){
if(pm==null){
pm = (PowerManager) getApplication().getSystemService(Context.POWER_SERVICE);
}
boolean isScreenOn = pm.isScreenOn();//如果为true,则表示屏幕“亮”了,否则屏幕“暗”了。
if(!isScreenOn){
islock=true;
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
keyguardLock = keyguardManager.newKeyguardLock(LOCK_TAG);
keyguardLock.disableKeyguard();
mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, LOCK_TAG);
mWakeLock.acquire();
}
}
public void lock(){
if(islock){
//释放屏幕常亮锁
if(null != mWakeLock) {
mWakeLock.release();
}
//屏幕锁定
if(keyguardLock!=null){
keyguardLock.reenableKeyguard();
}
}
}
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
final int eventType = event.getEventType();
LogUtil.info("事件---->" + event);
//通知栏事件
if(eventType == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
unlock();
List<CharSequence> texts
access按坐标点击的两种办法
于 2022-09-29 00:41:39 首次发布
本文介绍了在Android开发中,如何通过坐标实现节点的点击操作。包括两种情况:一是节点可见但难以定位点击的方法;二是节点不可见或无法响应点击事件的解决方案。
摘要由CSDN通过智能技术生成