周围朋友有做代购的想要自定义位置,并且能够搜索附近的人自动打招呼的功能。
原理其实比较简单,主要是通过地图SDK(百度,或者高德)获取对应位置经纬度,然后设置成当前位置(虚拟位置),在通过自动化测试工具自动去操作微信。
需求:
1 自定义当前位置
2 微信搜索附近的人,自动打招呼
3 可以自定义消息内容
需要的知识点:
1百度地图SDK 获取位置 设置当前位置
2robotium自动化测试库
3 城市位置数据库
程序框架:
1启动界面--选择城市---启动微信--自动化操作
技术预研
1 模拟位置
2 结合百度地图或者城市数据库进行位置选择
3 自动化操作流程
4 如何启动微信 进行中
1模拟位置已经通过测试
2百度地图SDK以前做,获取经纬度坐标 通过
3启动微信startActivity(AcitivyLanchMM.this.getPackageManager().getLaunchIntentForPackage("com.tencent.mm"));
4自动化操作正在进行。。。
遇到的问题:
Test run failed: Permission Denial: starting instrumentation ComponentInfo{com.jayway.test/android.test.InstrumentationTestRunner} from pid=27322, uid=27322 not allowed because package com.jayway.test does not have a signature matching the target com.tencent.mm
解决方法:
使用re-sign.jar 重签名apk
使用adb install xx.apk进行安装
注意:在自己的应用中启动自动测试时,使用 String cmd = "adb shell am instrument -e class com.robotium.test.NotePadTest -w com.jayway.test/android.test.InstrumentationTestRunner";
Runtime.getRuntime().exec(cmd)打开测试用例 需要有root权限(),在没有root的情况下可以使用startInstrumentation(new ComponentName("com.jayway.test", "android.test.InstrumentationTestRunner"), null, null); 打开 参考链接点击打开链接
自动化操作可以参考Demo:点击打开链接
完整程序:
1 GPS (这个是模拟位置的,经纬度可以通过百度地图获取到)
2 WxRobot(微信6.0以上自动打招呼)
启动GPS 然后再启动WxRobot 添加好友吧!