package rom;

import java.lang.*;
import java.util.Random;
import java.io.File;
import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiScrollable;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
import android.R.id;
import android.R.string;
import android.graphics.Rect;
import android.graphics.SumPathEffect;
import android.os.RemoteException;
import android.util.Log;
import com.android.uiautomator.core.UiWatcher;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiDevice; public class BTtest extends UiAutomatorTestCase{
public int startapp(String componentName){
StringBuffer app = new StringBuffer();
app.append("am start -n");
app.append(componentName);
int ret = 1;
try{
Process process = Runtime.getRuntime().exec(app.toString());
ret = process.waitFor(); }catch(Exception e){
e.printStackTrace();
System.out.println("startapp Exception!!! ");
}
return ret;
}
public void Screenshot(String name) { //截取当前屏幕图片的方法
File file = new File("/mnt/sdcard/Podcasts/log"+name+".png");
UiDevice.getInstance().takeScreenshot(file);
}
public void longclick (UiObject ojb){ //长按方法
try{
Rect ojbValue = ojb.getBounds();
UiDevice.getInstance().swipe(ojbValue.centerX(), ojbValue.centerY(), ojbValue.centerX()+5, ojbValue.centerY()+5, 250);
}catch(UiObjectNotFoundException e ){
e.printStackTrace();
}
}
public void testbt()throws UiObjectNotFoundException,RemoteException{
String BTname = "HG11";
sleep(10000);
for(int i=0;i<50;i++){
UiDevice.getInstance().sleep();
sleep(1000);
UiDevice.getInstance().wakeUp();
sleep(1000);
try{
UiObject Unlocked = new UiObject(new UiSelector().resourceId("com.android.systemui:id/notification_stack_scroller"));
assertTrue("Unlocked fail!...",Unlocked.exists());
Unlocked.swipeUp(25);
sleep(1000);
}catch(UiObjectNotFoundException e1){
e1.printStackTrace();
Log.d("Unlocked", "Exception!!!", e1);
System.out.println("Unlocked Exception!!!");
Screenshot("Unlocked_"+i);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().sleep();
sleep(1000);
UiDevice.getInstance().wakeUp();
sleep(1000);
}
startapp("com.android.settings/com.android.settings.Settings");
sleep(1000);
UiObject bt = new UiObject(new UiSelector().text("蓝牙").resourceId("android:id/title"));
assertTrue("bt fail!....",bt.exists());
bt.clickAndWaitForNewWindow();
UiObject off = new UiObject(new UiSelector().text("开启").resourceId("com.android.settings:id/switch_widget"));
assertTrue("off fail!....",off.exists());
off.click();
sleep(3000);
UiObject on = new UiObject(new UiSelector().text("关闭").resourceId("com.android.settings:id/switch_widget"));
assertTrue("on fail!...",on.exists());
on.click();
sleep(1000);
UiObject bt1 = new UiObject(new UiSelector().text(BTname).resourceId("android:id/title")); //搜索配对蓝牙
int time = 0 ;
do {
time++;
sleep(5000);
} while (!(bt1.exists()||time<12));
sleep(1000);
bt1.clickAndWaitForNewWindow();
Screenshot("Pairing_Bluetooth"+i);
sleep(2000);
UiObject pair = new UiObject(new UiSelector().text("配对").resourceId("android:id/button1")); // 点击配对
assertTrue("pair fail!...",pair.exists());
pair.clickAndWaitForNewWindow();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
startapp("com.mediatek.filemanager/com.mediatek.filemanager.FileManagerOperationActivity"); //进入文件管理
UiObject sd = new UiObject(new UiSelector().text("SD卡").resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
assertTrue("sd fail!...",sd.exists());
sd.clickAndWaitForNewWindow(); //点击进入sd卡
UiObject Video_folder = new UiObject(new UiSelector().text("视频shiping")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject Picture_folder = new UiObject(new UiSelector().text("墙纸qiangzhi")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject Music_folder = new UiObject(new UiSelector().text("音乐yinyue")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject [] random_document = {Video_folder,Picture_folder,Music_folder};
Random random = new Random();
int Value =random.nextInt(3);
UiScrollable scroll = new UiScrollable(new UiSelector().resourceId("com.mediatek.filemanager:id/list_view")
.className("android.widget.ListView").packageName("com.mediatek.filemanager"));
assertTrue("scroll fail!...", scroll.exists());
scroll.scrollIntoView(random_document[Value]);
sleep(1000);
random_document[Value].clickAndWaitForNewWindow();
if(random_document[Value].equals(Video_folder)){ //进入视频文件夹后
Random Video_random = new Random();
UiObject Video_1 = new UiObject(new UiSelector().text("爱有你才完整官方版--音悦tai.mp4")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject Video_2 = new UiObject(new UiSelector().text("荷塘月色--音悦tai.mp4")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject Video_3 = new UiObject(new UiSelector().text("江南style完整版--音悦tai.mp4")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject Video_4 = new UiObject(new UiSelector().text("泡沫--音悦tai.mp4")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject[] Video_group = {Video_1,Video_2,Video_3,Video_4};
longclick(Video_group[Video_random.nextInt(4)]); //长按
sleep(1000);
UiObject share = new UiObject(new UiSelector().description("分享").resourceId("com.mediatek.filemanager:id/share"));
assertTrue("share fail!...",share.exists());
share.clickAndWaitForNewWindow();
sleep(1000); }else if(random_document[Value].equals(Picture_folder)){ //进入图片文件夹后
UiObject Picture_1 = new UiObject(new UiSelector().text("087cc91d9f304e05d0581bca.jpg")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject Picture_2 = new UiObject(new UiSelector().text("1-100PP93123.jpg")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject Picture_3 = new UiObject(new UiSelector().text("1216-110424100921.jpg")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject Picture_4 = new UiObject(new UiSelector().text("1229390021306i5q8hgj9cb.jpg")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
longclick(Picture_1); //长按
sleep(1000);
Picture_2.click();
sleep(1000);
Picture_3.click();
sleep(1000);
Picture_4.click();
sleep(1000);
UiObject share = new UiObject(new UiSelector().description("分享").resourceId("com.mediatek.filemanager:id/share"));
assertTrue("share fail!...",share.exists());
share.clickAndWaitForNewWindow();
sleep(1000);
}else if(random_document[Value].equals(Music_folder)){ //进入音乐文件夹后
UiScrollable Music_scroll = new UiScrollable(new UiSelector().resourceId("com.mediatek.filemanager:id/list_view")
.className("android.widget.ListView").packageName("com.mediatek.filemanager"));
UiObject Music_1 =new UiObject(new UiSelector().text("阿悄 - 神武雨霖铃.mp3")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject Music_2 =new UiObject(new UiSelector().text("蔡健雅,周三 - 周三的情书.mp3")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject Music_3 =new UiObject(new UiSelector().text("陈奕迅 - 浮夸.mp3")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject Music_4 =new UiObject(new UiSelector().text("陈奕迅 - 十年.mp3")
.resourceId("com.mediatek.filemanager:id/edit_adapter_name"));
UiObject[] Music_group = {Music_1,Music_2,Music_3,Music_4};
Random Music_random = new Random();
int Music_random_Value = Music_random.nextInt(4);
Music_scroll.scrollIntoView(Music_group[Music_random_Value]);
sleep(1000);
longclick(Music_group[Music_random_Value]);
sleep(1000);
UiObject share = new UiObject(new UiSelector().description("分享").resourceId("com.mediatek.filemanager:id/share"));
assertTrue("share fail!...",share.exists());
share.clickAndWaitForNewWindow();
sleep(1000); }
UiObject Share_Bluetooth = new UiObject(new UiSelector().text("蓝牙")
.resourceId("android:id/text1").className("android.widget.TextView"));
assertTrue("Share_Bluetooth fail!...", Share_Bluetooth.exists());
Share_Bluetooth.clickAndWaitForNewWindow();
sleep(1000);
Screenshot("Share_Bluetooth_"+i);
UiObject Select_Bluetooth_to_share = new UiObject(new UiSelector().text(BTname).resourceId("android:id/title"));
do {
sleep(2000);
} while (!Select_Bluetooth_to_share.exists());
Select_Bluetooth_to_share.clickAndWaitForNewWindow();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().openNotification();
sleep(5000);
/*
UiObject Share_progress = new UiObject(new UiSelector().resourceId("com.android.systemui:id/notification_stack_scroller")
.className("android.widget.ScrollView"));
UiObject Share_progress1 = Share_progress.getChild(new UiSelector().index(0).className("android.widget.FrameLayout")); */
UiObject Share_progress1 = new UiObject(new UiSelector().resourceId("android:id/progress")
.className("android.widget.ProgressBar"));
for(int j=0;j<5;j++){ //判断蓝牙文件是否传输完毕
do {
sleep(1000);
} while (Share_progress1.exists());
} sleep(1000);
Screenshot("Share_progress_End_"+i);
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
startapp("com.android.settings/com.android.settings.Settings"); //再次进入设置
sleep(1000);
UiObject bt2 = new UiObject(new UiSelector().text("蓝牙").resourceId("android:id/title")); //点击蓝牙
assertTrue("bt fail!....",bt2.exists());
bt2.clickAndWaitForNewWindow();
UiObject Bluetooth_settings = new UiObject(new UiSelector().description("设备设置") //点击连接的蓝牙设置
.resourceId("com.android.settings:id/deviceDetails"));
assertTrue("Bluetooth_settings fail!...",Bluetooth_settings.exists());
Bluetooth_settings.clickAndWaitForNewWindow();
sleep(1000);
UiObject Cancel_save = new UiObject(new UiSelector().text("取消保存").resourceId("android:id/button2")); //取消已经连接的蓝牙
Cancel_save.clickAndWaitForNewWindow();
sleep(1000);
Screenshot("Cancel_save_"+i);
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
}
} }

												

uiautomator 代码记录 : BT发送测试的更多相关文章

  1. uiautomator 代码记录 :BT接收测试

    package rom; import java.lang.*; import java.util.Random; import java.io.File; import com.android.ui ...

  2. uiautomator 代码记录 : 随机发送短信

    package sms_test; import java.lang.*; import java.util.Random; import javax.microedition.khronos.egl ...

  3. UiAutomator 代码记录: 随机创建新联系人

    package lecturer; import java.lang.*; import java.nio.Buffer; import java.util.Random; import java.i ...

  4. UiAutomator 代码记录 : 遍历桌面

    package test_one; import java.lang.*; import java.io.File; import com.android.uiautomator.core.UiDev ...

  5. Spring进阶—如何用Java代码实现邮件发送(一)

    相关文章: <Spring进阶—如何用Java代码实现邮件发送(二)> 在一些项目里面如进销存系统,对一些库存不足发出预警提示消息,招聘网站注册用户验证email地址等都需要用到邮件发送技 ...

  6. sql 邮件发送测试情况

    sql 邮件发送测试情况 select * from msdb.dbo.sysmail_allitems select * from msdb.dbo.sysmail_event_log

  7. MVVM 代码记录

      一.XML <Page x:Class="MVVM.MainPage" xmlns="http://schemas.microsoft.com/winfx/20 ...

  8. Java 中静态代码块初始化问题测试

    Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...

  9. stm32+lwip(五):以太网帧发送测试

    我是卓波,很高兴你来看我的博客. 系列文章: stm32+lwip(一):使用STM32CubeMX生成项目 stm32+lwip(二):UDP测试 stm32+lwip(三):TCP测试 stm32 ...

随机推荐

  1. Xilinx FPGA开发环境vivado使用流程

    Xilinx FPGA开发环境vivado使用流程 1.启动vivado 2016.1 2.选择Create New Project 3.指定工程名字和工程存放目录 4.选择RTL Project 5 ...

  2. golang语言并发与并行——goroutine和channel的详细理解(一) 转发自https://blog.csdn.net/skh2015java/article/details/60330785

    如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人. Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据. ...

  3. camera-arm-RPI

    这个属于先收藏着,知道有个开源的东西. luvcview是一个开源项目,专注于UVC摄像头的测试,只要您的摄像头支持UVC驱动,即可使用luvcview测试程序,如何知道自己的摄像头是不是支持UVC驱 ...

  4. html多个水平并列组件自适应等高的做法

    做一个div盒子,设置over-flow:hidden,设置高度为auto.然后再盒子里排列若干inline-block,inline元素. 自适应的话常用做法是用line-height,font-s ...

  5. WhereHows前后端配置文件

    前端: # This is the main configuration file for the application. # ~~~~~ # Secret key # ~~~~~ # The se ...

  6. Hadoop概念学习系列之Hadoop、Spark学习路线(很值得推荐)(十八)

    不多说,直接上干货! 说在前面的话 此笔,对于仅对于Hadoop和Spark初中学者.高手请忽略! 1 Java基础: 视频方面:          推荐<毕向东JAVA基础视频教程>.学 ...

  7. 工具类System,Runtime,Math,Date,Calendar

    API--- java.lang.System: 属性和行为都是静态的. long currentTimeMillis(); // 返回当前时间毫秒值   exit();  // 退出虚拟机 Prop ...

  8. PAT 乙级 1029 旧键盘(20) C++版

    1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...

  9. 透过CAT,来看分布式实时监控系统的设计与实现

    2011年底,我加入大众点评网,出于很偶然的机会,决定开发CAT,为各个业务线打造分布式实时监控系统,CAT的核心概念源自eBay闭源系统CAL----eBay的几大法宝之一. 在当今互联网时代,业务 ...

  10. hessian 反序列化问题

    有class 比如 class Test{ private TestArrayList list=new TestArrayList(""); public static void ...