欢迎来到天天文库
浏览记录
ID:40523085
大小:111.00 KB
页数:4页
时间:2019-08-04
《android wear开发之在表盘显示信息》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、除了告知时间,AndroidWear设备还能提供给用户与情景相关的信息,以卡片、通知和App的形式。就想其他androidwearapp一样,你的表盘也能通过数据层API跟手持设备进行交流。这些示例中,你需要在手持设备app工程中创建一个Activity来接收intent数据,并且在表盘上显示他们。创建一个引人入胜的体验在你创建一个情景感知的表盘前,回答以下问题:·你想结合什么类型的数据·你要在哪包含这些数据·你如何更新数据·你想如何呈现数据让用户便于理解AndroidWear设备通常会跟带有gps传感器和移动
2、网络的设备进行配对,所以你有无限种可能来设想你的表盘能整合的数据类型,例如地理位置,日历事件,社交媒体,图片流,股市行情,新闻事件,体育比分等等。可是,不是所有类型的数据都建议显示在表盘上,所以你需要考虑什么类型的数据跟用户每天的情景是关联的。当androidwear设备没有跟手持设备配对或者网络连接无效的时候,你的表盘也应该可以完美的处理。被激活的表盘是个持续运行的应用,所以你需要考虑有效的续航问题。例如你可以每十分钟获取一次当前天气并存储在本地,而不是每分钟频繁的更新。你也可以当设备模式切换的时候刷新情景数
3、据,因为用户很可能是瞥一眼手表。你应该在表盘上显示简要的信息,因为屏幕上只有有限的空间,并且用户只是会用1到2秒来瞥一眼手表。有时传递情景信息最好的方式是反应到使用的图片和颜色上。例如表盘可以根据当前天气改变背景图。给表盘添加数据AndroidSDK中有表盘示例代码,在CalendarWatchFaceService类中展示如何获取日历的用户配置数据,以及显示在未来的24小时有多少会议。这个示例的位置在android-sdk/samples/android-21/wearable/WatchFace目录下。为了
4、实现包含情景数据的表盘,通过以下几步:1.提供拉取数据的task1.创建一个自定义的定时器来周期性调用你的task,或者外部数据发生改变时通知你的表盘services2.用更新的数据重绘你的表盘提供拉取数据的task创建一个类继承AsyncTask,并添加拉取数据的代码CalendarWatchFaceService类包含了下一天的会议数量:/*Asynchronoustasktoloadthemeetingsfromthecontentproviderand *reportthenumberofmeeting
5、sbackusingonMeetingsLoaded()*/ privateclassLoadMeetingsTaskextendsAsyncTask{ @Override protectedIntegerdoInBackground(Void...voids){ longbegin=System.currentTimeMillis(); Uri.Builderbuilder= WearableCalendarContract.Instances.CONTENT_URI.b
6、uildUpon(); ContentUris.appendId(builder,begin); ContentUris.appendId(builder,begin+DateUtils.DAY_IN_MILLIS); finalCursorcursor=getContentResolver().query(builder.build(), null,null,null,null); intnumMeetings=cursor.getCount(); if(Log.isLoggable(TAG,Log.VERB
7、OSE)){ Log.v(TAG,"Nummeetings:"+numMeetings); } returnnumMeetings; } @Override protectedvoidonPostExecute(Integerresult){ /*getthenumberofmeetingsandsetthenexttimertick*/ onMeetingsLoaded(result); } }WearableSupportLibrary中的WearableCalendarContract类提供直接访问配对
8、设备中用户日历事件。当任务完成拉取数据后,你的代码会调用一个回调方法。下面讲述如何实现回调方法。更多关于获取日历数据的详情,查看CalendarProvider创建自定义定时器你能实现一个自定义定时器来周期性刷新数据。CalendarWatchFaceService类使用一个handler实例利用线程消息队列来发送和处理延迟消息。privateclassEngineextendsCan
此文档下载收益归作者所有