摘要: 这篇博客指导读者如何通过管理员权限的CMD命令行,进入Python主目录并使用pip安装requests库。在PyCharm中,如果IDE未检测到requests,用户需要在此安装,或者考虑更新Python版本。 首先我们需要用管理员权限打开CMD命令窗口,然后进入到python主目录中,然后输入p 阅读全文
posted @ 2025-02-22 14:00 野狼谷 阅读(26) 评论(0) 推荐(0) 编辑

实现 Android 无障碍开发 企业微信 机器人

作为一名新入行的开发者,你可能对如何开发一个支持企业微信的无障碍机器人感到迷茫。在这篇文章中,我将为你详细讲解实现这一功能的流程和代码示例。

流程概览

首先,我们来看看整个实现过程。下面是一个简单的流程图和步骤表:

                                                         

 

步骤描述
1 准备开发环境,包括 Android Studio 和所需的 SDK
2 获取并配置企业微信 API Token
3 创建无障碍服务并在 AndroidManifest.xml 中注册
4 实现机器人的核心逻辑,将其集成到无障碍服务中
5 测试机器人的功能,并进行必要的优化

详细步骤及代码

1. 准备开发环境

确保你已经安装了 [Android Studio]( 和 Android SDK。接下来,我们需要创建一个新的 Android 项目。

2. 获取企业微信 API Token

在企业微信的管理后台获取 API Token。这个 Token 将用于发送和接收消息。

// 假设你已经获取了 API Token
private static final String API_TOKEN = "YOUR_API_TOKEN";

3. 实现无障碍服务

AndroidManifest.xml 文件中,注册无障碍服务。

<service
    android:name=".AccessibilityServiceDemo"
    android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
    <intent-filter>
        <action android:name="android.accessibilityservice.AccessibilityService" />
    </intent-filter>

    <meta-data
        android:name="android.accessibilityservice"
        android:resource="@xml/accessibility_service_config" />
</service>

创建一个 accessibility_service_config.xml 文件,配置服务的细节。

<accessibility-service xmlns:android="
    android:accessibilityEventTypes="typeAllMask"
    android:packageNames="com.tencent.wework"  <!-- 仅限企业微信 -->
    android:accessibilityFeedbackType="feedbackSpoken"
    android:notificationTimeout="100"
    android:canRetrieveWindowContent="true"
    android:description="@string/accessibility_service_description" />

接下来,创建一个类扩展 AccessibilityService

public class AccessibilityServiceDemo extends AccessibilityService {

    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        // 这里处理无障碍事件
    }

    @Override
    public void onInterrupt() {
        // 处理服务的中断情况
    }
}

4. 编写机器人逻辑

在无障碍服务中,我们需要添加代码来处理与企业微信的交互。以下是示例代码,用于发送消息。

private void sendMessage(String message) {
    // 使用 HttpURLConnection 发送 POST 请求
    new Thread(() -> {
        try {
            URL url = new URL(" + API_TOKEN);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);
            conn.setRequestProperty("Content-Type", "application/json");

            String jsonInputString = "{ \"touser\": \"USER_ID\", \"msgtype\": \"text\", \"text\": { \"content\": \"" + message + "\" } }";
            try (OutputStream os = conn.getOutputStream()) {
                byte[] input = jsonInputString.getBytes("utf-8");
                os.write(input, 0, input.length);
            }

            int responseCode = conn.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
                // 处理成功响应
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }).start();
}

5. 测试和优化

在设备上实际测试你的无障碍服务,确保其在企业微信中按预期工作。使用 Android 的无障碍设置来启用你的服务,然后尝试与企业微信进行交互。

结尾

本篇文章旨在为新手开发者提供一个清晰的指导,帮助你实现一个简单的 Android 无障碍企业微信机器人。通过上述步骤,你应该能够搭建起基本的框架,并在此基础上进行更详细的功能扩展和优化。祝你在开发的过程中有所收获,期待你的作品!

https://blog.51cto.com/u_16213306/12381289

posted @ 2025-02-21 15:56 野狼谷 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 本文提供了一种批量删除MySQL生产环境中数据库表的注释或表字段注释的方法,通过脚本实现高效维护表结构的清晰性。 一、表注释修改 1.获取删除MySQL数据库表注释脚本select concat('ALTER TABLE ',table_name," COMMENT = '';")fROM info 阅读全文
posted @ 2025-02-06 23:19 野狼谷 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2025-02-06 13:40 野狼谷 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 1.在项目内部进入终端 2.输入:npm config set registry https://registry.npmmirror.com 修改npm下载地址为淘宝 3.然后再执行 npm i 进行下载(几秒就下载好了) 4.下载好后会有一个文件夹:node_models 阅读全文
posted @ 2025-01-07 00:17 野狼谷 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 业务场景 由于业务需要导出如下图中订单数据和订单项信息,而一个订单对应多个订单项,所以会涉及到自定义合并行 1.简单处理项目使用的EasyExcel,经查找发现Excel种有个AbstractMergeStrategy抽象类,可以用于合并单元格。于是先简单的写一个工具类实现根据数据自定义合并单元行, 阅读全文
posted @ 2024-03-08 23:23 野狼谷 阅读(645) 评论(0) 推荐(0) 编辑
摘要: 背景 EasyExcel(根据条件动态合并单元格的重复数据))_Violet-CSDN博客_easyexcel动态合并单元格现有的订单导出是使用的easyExcel完成的.对于相同单元格的合并是自定义的策略,问题是对于重复单元格的值会合并,表格求和时值会虚高现需要对合并格做修改,做到值只有一个。 思 阅读全文
posted @ 2024-03-08 23:16 野狼谷 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 微信支付对接时,需要申请AppID,具体在下面的位置: 关联AppID,发起申请时,会提示这么一句话: 此时需要登录企业微信网页版,使用注册人的企业微信扫码登录进去,然后按照下面的步骤操作即可。 点击查看,在弹出来的页面中授权即可。 阅读全文
posted @ 2024-02-02 11:37 野狼谷 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 本项目 nginx 作为代理服务 项目上线,客户说要加个安全证书 ,于是安全证书是加上了,可是htttp和https都能访问网站,客户要求不行必须强制用带有https的地址访问 开整 这是 http 和https 都能访问的 nginx.conf 关键配置 server { listen 80; l 阅读全文
posted @ 2024-01-25 16:06 野狼谷 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 连续分享.Net开源项目快3个月了,今天我们一起梳理下10个,比较受到大家欢迎的.NetCore开源框架项目。 更多开源项目,可以查看我创建的,.Net开源项目榜单! 一个专注收集.Net开源项目的榜单​github.com/bianchenglequ/netcodetop 1、FytSoaCms 阅读全文
posted @ 2023-11-16 15:25 野狼谷 阅读(2549) 评论(0) 推荐(1) 编辑
点击右上角即可分享
微信分享提示