test-phone.js
1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/**
* test-phone.js — 在手机上验证微信发送和跟踪功能
*
* 运行方式:
* cd /data/data/com.termux/files/home/hermes-wechat
* node test-phone.js
*/
const { sendTextMessage, sendTextMessageBroadcast, queryStatus } = require('./android-wechat-sender');
const { AndroidWechatTracker } = require('./android-wechat-tracker');
const TARGET = process.argv[2] || 'filehelper';
const CONTENT = process.argv[3] || `hermes phone test ${new Date().toLocaleTimeString()}`;
async function run() {
console.log('=== WeChat Phone Test ===');
console.log(`Target: ${TARGET}`);
console.log(`Content: ${CONTENT}`);
console.log('');
// 1. 查询状态
console.log('[1] Querying status...');
const status = await queryStatus();
console.log(' Status:', status);
console.log('');
// 2. 发送消息(广播方式,更可靠)
console.log('[2] Sending via broadcast...');
const result = await sendTextMessageBroadcast(TARGET, CONTENT);
console.log(' Result:', result);
console.log('');
// 3. 等待并跟踪消息
console.log('[3] Tracking messages for 10 seconds...');
const tracker = new AndroidWechatTracker();
let received = false;
tracker.on('message', msg => {
if (msg.content.includes(CONTENT.substring(0, 10))) {
console.log(' ✓ Captured our message:', msg);
received = true;
}
});
tracker.on('sendResult', r => {
console.log(' Send result:', r);
});
tracker.startPolling(1000);
await new Promise(r => setTimeout(r, 10000));
tracker.stopPolling();
console.log('');
if (received) {
console.log('✅ Test PASSED — message sent and tracked successfully');
} else {
console.log('⚠️ Test INCONCLUSIVE — message may have sent but not captured in logs');
console.log(' Check: su -c "logcat -s HermesWX:D | grep MSG"');
}
}
run().catch(e => {
console.error('❌ Test FAILED:', e.message);
process.exit(1);
});