access按坐标点击的两种办法

本文介绍了在Android开发中,如何通过坐标实现节点的点击操作。包括两种情况:一是节点可见但难以定位点击的方法;二是节点不可见或无法响应点击事件的解决方案。
摘要由CSDN通过智能技术生成
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值