Android Wear 真机调试&创建第一个应用

两年前,Android Wear刚出来的时候,我耐不住性子折腾新技术,就开始去把玩Android Wear。我当时还买不起真机,就用模拟器测试,2014年的那天也是端午佳节,我写了Android Wear第一个小例子。去年Moto 360 1 Gen 降价了,于是就入手了一台,准备开始来做Android Wear的App测试,然后呢,事实上就一直没有时间去做相关的开发测试,(是懒了?还是真的没时间?)好了,现在决定开始来着手,就从下面的例子开始吧。

调试前的准备

操作系统:Ubuntu 16.04 LTS
开发环境:Android Studio 2.2 preview 2 (version:Linux)
手持设备:Google Nexus 5
手表设备:Moto 360 1 Gen
手持系统:Android 6.0.1(MOB30M)
手表系统:Android Wear 1.4.0.2580363 (Android 6.0.1)

创建项目

1、启动Android Studio,新建一个项目工程AndroidWearApp

wear_demo1_pic1

2、复选框选中手机和手表两个选项:
选中Phone and Tablet 并且 Minimum SDK 选择 API15:Android 4.0.3(IceCreamSandwich)
选中Wear并且Minimum SDK 选择 API20:Android 4.4(KitKat Wear)

wear_demo1_pic2

3、Add an Activity to Mobile,我们选择添加默认的Empty Activity显示空Activity

wear_demo1_pic3

4、Add an Activity to Wear 我们选择添加Blank Wear Activity显示通知

wear_demo1_pic4

5、成功创建项目完成,打开Wear模块下的布局文件

wear_demo1_pic5

开启设备调试

开启手机端USB调试开关

打开系统设置,查看是否有开发者选项,如果有直接进去打开开发者选项,开启USB调试开关;如果没有,在设置最下面的关于手机中,点击底部系统版本信息7次,会弹出打开成功的提示。按返回键回到上一级,可以看到开发者选项,打开开发者选项,开启USB调试开关。

wear_demo1_pic6

开启手表端Bluetooth调试开关

按右侧的物理键点亮屏幕,屏幕向左滑动唤出菜单,上下滚动找到设置选项点击它,然后滚动到底部看是否有开发者选项,如果有,进去开启USB调试开关。;如果没有,点击设置底部的关于,然后点击系统版本信息7次,就会出现开发者选项。进入开发者选项,开启USB调试开关。

wear_demo1_pic7

开启调试会话连接

手机USB数据线连接到电脑,在手机端打开蓝牙,运行Android Wear应用(确保你的手机手表已经连接)。
点击Android Wear右上角的齿轮图标进入设置(Settings)

wear_demo1_pic8

开启通过蓝牙调试

打开设置(Settings)底部的通过蓝牙调试(Debugging over Bluetooth)切换按钮。你可以看到连接状态:

Host: disconnected
Target: connected

wear_demo1_pic9

确保手机已经链接到电脑,并执行adb命令:

1
adb forward tcp:4444 localabstract:/adb-hub; adb connect localhost:4444

wear_demo1_pic10

你就可以看到刚才连接状态变成了

Host: connected
Target: connected

wear_demo1_pic11

调试应用

我们回到Android Studio,我们可以看到 Android Monitor下面已经连接上了两个设备,一个是我的手持设备LGE Nexus 5 Android 6.0.1,API 23,另一个是我的手表设备Motorola Moto 360 Android 6.0.1,API 23,标志着我的手表手机和Android Studio三者之间都互通了。

wear_demo1_pic12

下面需要到wear模块下Java代码进行修改:

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
public class MainActivity extends Activity {

private TextView mTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
@Override
public void onLayoutInflated(WatchViewStub stub) {
mTextView = (TextView) stub.findViewById(R.id.text);
mTextView.setText("点我创建通知");
mTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int notificationId = 001;
String eventTitle = "端午将至";
String eventLocation = "祝大家端午节快乐!\n生活“粽”快乐!\n样样“粽”美好!";

// Build intent for notification content
Intent viewIntent = new Intent(MainActivity.this, MainActivity.class);
PendingIntent viewPendingIntent =
PendingIntent.getActivity(MainActivity.this, 0, viewIntent, 0);

NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(MainActivity.this)
.setSmallIcon(R.mipmap.googledev)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.googledev))
.setContentTitle(eventTitle)
.setContentText(eventLocation)
.setContentIntent(viewPendingIntent);

// Get an instance of the NotificationManager service
NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(MainActivity.this);

// Build the notification and issues it with notification manager.
notificationManager.notify(notificationId, notificationBuilder.build());

}
});
}
});

}
}

点击Android Monitor下的设备,选中手表Motorola Moto 360 Android 6.0.1,API 23,点击Android Studio上的运行,App即可会自动安装到手表上,稍微有点慢耐心等下就好。

wear_demo1_pic13

点击Activity上的TextView创建通知,回到主界面,往上滑动就能看到,刚刚创建的手表通知消息

wear_demo1_pic14

卸载调试的应用

执行命令 “adb -s localhost:4444 uninstall 包名” 即可,如:

1
adb -s localhost:4444 uninstall com.example.shoewann.androidwearapp

这样,再看手表上就没有那个调试程序了。

以上简单的介绍了如何在使用真机创建调试Android Wear可穿戴设备,后续继续总结。如果不足,欢迎指正,谢谢。

-------------本文结束感谢您的阅读-------------
if (本文对您有用) { Pay (请随意¥打赏) } else { Commit feedback (底部评论区提交建议、反馈) } 感谢支持!
0%