如题所述
Android Wearæ¯è¿æ¥å®åææºåå¯ç©¿æ´äº§åçä¸ä¸ªå¹³å°ãèªä»ä»å¹´ä¸åå¹´åå¸ä»¥æ¥ï¼Android Wearè·å¾äºå¤§éå
³æ³¨ï¼æ¢ææ¥èªæ¶è´¹è
çå
³æ³¨ï¼ä¹ææ¥èªå¼ååçå
³æ³¨ï¼åè
å¸æèªå·±çåºç¨ç¨åºå·²ç»åå¤å¥½è®©ç¨æ·ä½¿ç¨ä¸ç§æ°çæ¹å¼è¿è¡ä¿¡æ¯äº¤äºã
è¿ç¯æç« å°ç®è¦ä»ç»Android Wearï¼ç¶åä»ç»å ³äºå¼ååçå¹³å°ã
Android Wearæ¨å¨ä¸ºç¨æ·å¨å¯¹çæ¶é´æä¾æ°éåéçä¿¡æ¯éãæ ¹æ®è¿ä¸ä¸»é¢ï¼è°·æå·²ç»åå¸äºè®¾è®¡åå以帮å©å¼ååéä¸æèAndroid
Wearåºç¨ç¨åºãæ们å°å¯¹æ¤è¿è¡ç®è¦ä»ç»ï¼åæ¶ä¹å°ç 究å¨Android
Wearç¯å¢ä¸è¿è¡åºç¨ç¨åºå¼åçå¿ è¦æ¡ä»¶ï¼ä»¥åå¦ä½è¿ç¨å¯ç¨çAPI帮å©å®åå¼ååç åç¨äºAndroid Wearå¹³å°çåºç¨ç¨åºã
Android Wearå¹³å°
Android
Wearæ¯ç¨äºå¯ç©¿æ´è®¾å¤çå¼æ¾æä½ç³»ç»ï¼å®æä¸ä¸ªæ°çç¨æ·çé¢ââè¿æ¯è°·æäºè§£æ们å¦ä½ä½¿ç¨ææºä»¥åæ们å¦ä½æ´å¤å°ä¸ç¯å¢æ¥è§¦çç»æãä¾å¦ï¼æ°æ®æ¾ç¤ºï¼
æ们ç¨ææºæ¥çä¿¡æ¯å¹³åæ¯å¤©æ150次左å³ãæ¯æ¬¡æ们è¿æ ·åçæ¶åï¼é½æå¯è½è¿·å¤±å¨å ¶å®åºç¨ç¨åºéé¢ï¼å¸¸å¸¸å¨ä¸ä¸ªä»»å¡ç¨åºä¸æ¶èå¾å¤æ²¡å¿ è¦çæ¶é´ï¼ææ¶ç
è³å®å ¨å¿è®°æ们è¦æ¥è¯¢çæéè¦ä¿¡æ¯ã
第ä¸æ¹ä½¿Android Wearç«çèµ·æ¥çæ¯ä¸æGear LiveåLG G Watchï¼è¿ä¸¤æ¬¾è®¾å¤é½æ¯å¨6æ份çGoogle
I/O大ä¼ä¸åå¸çãæ表æ¯Android
Wearç第ä¸éæ©ç®æ ï¼ç¡®å®å¦æ¤ï¼å¤§å¤æ°äººæ¯å¤©é½ä½¿ç¨æ表ãè¿äºæè°çæºè½æ表é常é½éè¦åå®åææºé 对使ç¨ï¼éè¿ä¸ææ°å®åææºçæ ç¼é åï¼è°·æ让ç¨
æ·çå°Android Wearå¹³å°çæç¨ã
äºå®ä¸ï¼å¼å§ä½¿ç¨Android Wearæ¶ï¼ä½ æéè¦åçæ¯ä»¥ä¸å æ¹é¢ï¼
1. å®å4.3设å¤ï¼
2. æ¥èªè°·æåºç¨ç¨åºå¸åºçAndroid Wearåºç¨ï¼
3. é 对å®åææºè®¾å¤ä¸Android Wear设å¤ã
没éï¼å°±è¿æ ·ãåªè¦å好è¿äºï¼ä½ ææºä¸ç大é¨åä¿¡æ¯é½å¯ä»¥å¨å¯ç©¿æ´è®¾å¤ä¸æ¥çãä½ ä¸ä» å¯ä»¥å¨æ表ä¸æ¥çè¿äºä¿¡æ¯ï¼ä¹å¯å¯¹å®ä»¬è¿è¡äº¤äºãå é¤ççãè¿æ¾ç¤ºçæ¯ä¸é费任ä½åæ°æè è±å¾å°æ¶é´å°±å¯ä»¥è®©å®ååºç¨ç¨åºåé 对设å¤è¿è¡ââå®åææºç¨æ·é½å¯ä»¥è¿ä¹åã
éè¦æ³¨æçæ¯ï¼ææºåå¯ç©¿æ´è®¾å¤æ¯éè¿èçè¿è¡è¿æ¥çãå¯ç©¿æ´è®¾å¤ç®åè¿ä¸è½ç¬ç«è®¿é®ç½ç»ï¼æ以éè¦éè¿ææºè¿è¡è¿æ¥ã
è½ç¶Android Wearå¾çµæ´»ï¼ä½æ¯å®ç®åæå ³æ³¨çæ¯æ表类ã
ä¹æåï¼æ©æç½æåå¸äºä¸ä¼æå¾ çæºè½æ表Moto360ãå®éç¨çæ¯Android Wearç³»ç»ãç±äºç¾ä¸½ç设计ï¼Moto
360è·å¾å¾å¤§çèµèªï¼èä¸250ç¾å çå®ä»·ä¹è·å¾äºæ¶è´¹è ç好è¯ãå ¶ä»å¼ååï¼å æ¬åç¡ï¼å·²å®£å¸åå¸Android Wearæºè½æ表çç¸å ³è®¡åäºã
使ç¨æ¨¡å¼
ä¸Android Wear设å¤è¿è¡äº¤äºç两ç§ä¸»è¦æ¹å¼æï¼â建议âåâéæ±âã
â建议âï¼é¡¾åæä¹ï¼ä»¥éç¥çå½¢å¼ï¼æ¨éå°Android Wear设å¤çåæ¶æç¨çä¿¡æ¯ãç¨æ·çé¢æè¿è®¾ç½®æå¡ççå½¢å¼ï¼å¦ä¸å¾æ示ã
å¼å¾æ³¨æçæ¯ï¼Wearåºç¨ç¨åºè½è¯å«ä¸ä¸æè¯å¢ï¼æ以åªæ¨éææ¬å çä¿¡æ¯ãè¿ç±»éç¥åæ¶ãç®çãä¸ç¨æ·ç交äºè¾¾å°æä½ç¨åº¦ã
è³äºâéæ±â使ç¨æ¨¡å¼ï¼ç¨æ·éè¿è¯é³åå¯ç©¿æ´è®¾å¤ååºä¿¡å·ï¼å®å°±ä¼åå¤ä¿¡æ¯ã设å¤å«æ麦å é£ï¼éè¿è¯´âOK,
Googleâæç¹å»ä¸»å±å¹å°±å¯ä»¥è®©ç¨æ·è°ç¨ä¸ç³»åæ åæ§è¡å¨ä½ãç¨æ·çé¢ä¼æ示ç¨æ·è¯´åºæ³è¦æ§è¡çå¨ä½æ令ãæ åæ§è¡å¨ä½å æ¬âåç¬è®°âãâæçµè¯âå
âåä¿¡æ¯âãä½ å¯ä»¥å¨è¿ç¨ç¨åºä¸æ³¨åæ åæ§è¡æ令ï¼ä¹å¯ä»¥èªå®ä¹æ示ææ¬ã
设计ç念
ç°å¨ï¼æ们已ç»äºè§£Android Wearçåºæ¬ä½¿ç¨æ¨¡å¼äºï¼æ¯æ¶åçä¸ä¸ç¨æ·çé¢å设计æ导ååäºã
å¦ä¸æ示ï¼åç°ç»ç¨æ·çå¾å¤ä¿¡æ¯é½æ¯ä»¥å¡ççå½¢å¼åºç°çã
注æä¸ä¸å¡ççä¸åé¨åãç®åAndroid Wearåºç¨ç¨åºéç¥å°ä¼ä»¥ä¸é¢çæ åæ ¼å¼åºç°ãä½æ¯æ们è°è®ºçæ¯å©äºé 读åæä¸ä¸æç¸å ³åº¦çæå°éä¿¡æ¯ï¼ä½ éè¦è±äºæ¶é´èèä½æ¶å¢å ææ¬éç¥åéè¦æ¾ç¤ºçææ¬ã
éç¥å¯ä»¥å¨å个æå¤ä¸ªå¡çä¸æ¾ç¤ºãå¦æ使ç¨å¤ä¸ªå¡çï¼ç¨æ·éè¦ä»å·¦å°å³æ»å¨é¡µé¢è¿è¡æ¥çã
å¦ä»¥ä¸æ示ï¼éè¿å å ï¼ä½ çè³å¯ä»¥å¨å个å¡çä¸æ¥çå¤æ¡éç¥ã
设计Android Wearç¨æ·ä½éªæ¶ï¼æåä¸ªå ³é®ç¹éè¦è®°ä½ï¼æ¯ä¸ä¸ªGoogle Wear Designè§è§åæé¨åï¼Android Wearåºç¨ç¨åºé½åºè¯¥åå°ï¼
1. èªå¨å¯å¨ï¼ç¨æ·åºè¯¥ä¸éè¦å¦å¤å¨Wear设å¤ä¸å®è£ åºç¨ç¨åºï¼Wear设å¤ä¸æ¯ææºãAndroid Wearåºç¨ç¨åºåºè¯¥å¯ä»¥è¯å«æ¶é´ãå°ç¹åæ´»å¨ï¼å¹¶ç¸åºå°æ¨éç¸å ³å¡çã
2. æ读æ§ï¼å 为ç¨æ·æ设å¤æ´å¨æè ä¸ï¼æ以é 读éç¥åºè¯¥åæ¥çä¼ ç»æ表çæ¶é´ä¸æ ·å®¹æãè®°ä½ï¼ç¹å«å ³æ³¨é¢ç®ï¼è¶ç®çè¶å¥½ââå¯ä»¥ä¸ç¼å°±çå°è¦ç¹ã
3. ææå©ç¨â建议âåâéæ±â模å¼ï¼Android Wearå¼åå页é¢æ¾ç¤ºï¼âAndroid
Wearå°±åä¸ä½æ好çç§äººå©çãå®åªå¨ä½ å®å ¨ä¸éè¦çæ¶åæä¼åä¸ï¼å®æ»æ¯éæ¶åå½ä¸ºä½ æä¾çæ¡ãâ为äºæä¾è¿ä¸ä½éªï¼å¼åååºè¯¥èèä½æ¶å¦ä½ä½¿ç¨â建
è®®âåâéæ±â模å¼ã
4. ä¸ç¨æ·çé¶ä½äº¤äºï¼å¼ååºç¨ä¸ç¨åºæ¯éè¦è®°ä½å¯ç©¿æ´è®¾å¤é½ç¹å«å°åãåºç¨ç¨åºå¿ 须便äºç¨æ·è¿è¡äº¤äºï¼ä¹å°±æ¯è¯´å¯ä»¥ä½¿ç¨å£°é³æç®åçæ»å¨æç¹å»æå¿ã
Android Wear设计å¢éå·²ç»åäºå¤§éå·¥ä½ï¼è®°å½å¨ç°æAndroid Wearåºç¨ç¨åºä¸è¿è¡æ©å±æ¶å¦ä½ææå°æ´å设计ç念ãï¼æ¥çAndroid Wear设计é¨åãï¼
å¼å详æ
å¨æ¬é¨åï¼æ们å°å¸®å©ä½ åæ¥äºè§£Android Wearç åçå ³é®æ¦å¿µã
ä½ å¯ä»¥éæ©EclipseæAndroid Studioä½ä¸ºAndroid Wearçéæå¼åç¯å¢ï¼IDEï¼ãè°·æ建议ç¨Android Studioè¿è¡å¼åãéè¿AndroidçSDK管çè ä¸è½½API 20 (4.4 KitKat Wear)ï¼
Android Studioæä¾äºå¨ç°æåºç¨ç¨åºä¸æ·»å Android Wearæ¯ææå建æ°é¡¹ç®ç便æ·æ¹å¼ï¼Android Studioç¨çæ¯ç»ä»¶æ¨¡åï¼å ¶ä¸ææºåAndroid Wearæ¯å项ç®çä¸é¨åã
å¦æè¦å¨Android Studioå建ä¸ä¸ªæ°é¡¹ç®ï¼ç¹å»æ件- >æ°é¡¹ç®ãå¨å导ç第äºé¡µï¼éæ©ææå åï¼ç¡®ä¿éæ©Android Wear模åä½ä¸ºä½ å¼åçææå åï¼è§ä¸å¾ï¼ã
ä¸æ¦å®æææé项éæ©ï¼é¡¹ç®å°±ä¼èªå¨çæãä½ ä¼çå°è¿ä¸ªAndroid项ç®æ两个模åï¼ç§»å¨åWearã移å¨ç使ç¨äºææºçåºç¨ç¨åºï¼Wearæ¯å¨Android Wearä¸è¿è¡çç¨åºã
Wearåºç¨ç¨åºä¸å¯ä»¥ä½ä¸ºåç¬ç软件å æ¾å¨è°·æååºéãä½ éè¦æ移å¨åWearåºç¨ç¨åºæ¾å¨åä¸ä¸ªåºç¨ç¨åºAPKä¸ãå½ç¨æ·å¨ææºä¸ä¸è½½APKæ¶ï¼Wearåºç¨ç¨åºå°±ä¼èªå¨ä¼ å°é 对çWear设å¤ã
Android Studio产ççé»è®¤é¡¹ç®å¹¶æ²¡æä»ä¹ç¹å«ãå¨æµè¯æé´ï¼æ们éè¦èªå·±å代ç ï¼è¿åå³äºæ们æ³è¦åºç¨ç¨åºçâå¯ç©¿æ´âæ§è¡ä»ä¹ã
éç¥
Android Wearçå¼åå¯ä»¥ä»ä¸¤ä¸ªè§åº¦è¿è¡åæï¼éç¥åAndroid Wearåºç¨ç¨åºæ¬èº«ï¼å æ¬å¨APKæ件夹ï¼ã
对äºå·²ç»ä»è°·æååºå®è£ å®æ¹Android Wearå°ææºçç¨æ·ï¼ä»¥åå·²ç»æææºåWear设å¤é 对çç¨æ·ï¼ä¸éè¦å¨åºç¨ç¨åºä¸å¯¹éç¥è¿è¡ä»»ä½æ´æ¹ã
è½ç¶è¿æ ·è¯´ï¼ä½ä¸ºäºè®©Wearçæ£åæ¥ä½ç¨ï¼ææ¶åæ´æ¹æ¯æå¿ è¦çã
ä½ å¯ä»¥ä»¤éç¥åªåºç°å¨ææºæå¯ç©¿æ´è®¾å¤æ两è é½æãæ¤å¤ï¼å¦ä¸æè¿°ï¼å¼åååºè¯¥æ³ä¸å¦ä½å©ç¨ç¨æ·çé¢ï¼UIï¼ä¼å¿ââå³èæ¯å¾åãéç¥æ é¢ãææ¬ççã
å建å°åéå°å¯ç©¿æ´è®¾å¤çææå¼éç¥ï¼è°·æ建议使ç¨éç¥å ¼å®¹çæå¨ãAndroid çæ¯æåºæä¾äºä¸ç³»åç±»å«ï¼ä½ éè¦æ·»å å°ä½ ç项ç®ä¸ã
å¦æ使ç¨Android Studioï¼ä½ éè¦æ·»å ä¸åå±äºç§»å¨æ¨¡åä¸çbuild.gradleæ件çç¼è¯æ¶é´ã
compile "com.android.support:support-v4:20.0.+"
è¦å建éç¥ï¼ä½ å¯å¨ä½ ç移å¨åºç¨ç¨åºä¸å°è¯ä¸é¢ç代ç ï¼
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle(âNew APIâ)
.setContentText(âXYZ API got added to Food Categoryâ)
.setSmallIcon(R.drawable.ic_mynotification)
.setContentIntent(PhoneActivityPendingIntent);
ç¶åï¼ä½ å¯ä»¥æ ¹æ®ä½ çé»è¾è§¦åéç¥ï¼å¦ä¸æ示ï¼
NotificationManagerCompatnotificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(notificationId, notificationBuilder.build());
ç°å¨ï¼å½ç¨æ·å¨Wear设å¤ä¸æ¶å°éç¥æ¶ï¼ä»ä»¬å¨ææºä¸ç¹å»éç¥æè æ»å¨å°å·¦è¾¹å°±å¯ä»¥å¯å¨çå¾ æ¨¡å¼ï¼ç¶åæ¾ç¤ºå¼å§å¨ä½ã
ä½ä¸ºæ©å±é¨åï¼å¦ææ³è¦éç¥åªåºç°å¨ææºï¼ä½ å¯ä»¥éè¿å ·ä½è¯´æsetLocalOnlyæ¥å建éç¥ã
å¨ä¸é¢çä¾åä¸ï¼æ们åªæ¾ç¤ºäºä¸ä¸ªå¡çï¼ä½ä½ å¯ä»¥çä¸æå¤é¡µçè³æå çéç¥å¡çã
å¯ç©¿æ´åºç¨ç¨åº
è½ç¶Android Wearæ¯ææ¥èªææºçéç¥ï¼ä½ææ¶åè¿ä¸å¤ãæå ç§æ åµï¼å æ¬ï¼
å¨ææºä¸æ¶å°æ°æ®æ¶æ³è¦å¨Wear设å¤å¯å¨æ´»å¨ï¼
ä»Wear设å¤åææºåéä¿¡æ¯ï¼åè¿æ¥æ§è¡ä¸äºæ´»å¨æè å¨åå°åç¹ä»ä¹ï¼
å¨Wear设å¤ä¸å建èªå®ä¹çé¢ï¼
ç¼åä¸ä¸ªå¯ä»¥å¨Wear设å¤ä¸å¯å¨åè¿è¡çç¨åºï¼å¹¶ä¸å¯ä»¥éè¿æ¥æ¶è¯é³è¾å ¥å¯å¨ä¸åå¨ä½æ令ã
以ä¸æå°çé½æå¯è½å®ç°ï¼åææ¯ä½ äºè§£ä¸äºWear APIçåºç¡ç¥è¯ã
è¿æ¥åæ°æ®äº¤æ¢
åé¢æä¾çæ¡ä¾ä¸ï¼å ±åç主é¢æ¯ææºåWear设å¤é½éè¦ä¸ä¸ªå¯è¿ç»åæ¹çæºå¶ï¼ç¶åä¸æ¦å»ºç«èç³»ï¼å°±éè¦ç¸äºçä¿¡æ¯äº¤æ¢ãè¿åè¿æ¥å¯ä»¥è§¦åç¸åºè®¾å¤ä¸çæ£ç¡®æ令ã
ææºåå¯ç©¿æ´è®¾å¤ä¹é´çèç³»æ¯ç±è°·ææä¾æå¡çãè°·æAPI客æ·ç«¯æä¾äºè¿ç§èç³»çå®ä¾ã
mGoogleApiClient = new GoogleApiClient.Builder(context)
.addApi(Wearable.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
ä½ å¯ä»¥å¨åéçè¿å¨å¨æ建ç«æå ³éèç³»ï¼å¦ä¸æ示ï¼
@Override protected void onStart() {super.onStart();
mGoogleApiClient.connect(); } @Override protected void onStop() { super.onStop(); mGoogleApiClient.disconnect(); }
ä¸æ¦å»ºç«èç³»ï¼ä½ å¯ä»¥æ¥çä¸åAPIä¾åï¼ä»¥ä¿è¿è®¾å¤é´çæ°æ®åéååæ¥ï¼
Node APIï¼è¯¥APIæ¯ç¨äºä¸¤ä¸ªè®¾å¤è¿æ¥æå离使éè¿NodeListenerçé¢æ¹æ³ä¿æ追踪ã
Message APIï¼è¯¥APIæ¯ç¨äºåæ¹ç¸äºåéæ¶æ¯ãè¿éè¦æ¥æ¶æ¹ï¼MessageListenerï¼æä¸ä¸ªçå¬å¨å¯ä»¥æ¥æ¶æ¶æ¯ã
Data APIï¼è¯¥APIç¨äºè®¾å¤ä¹é´çæ°æ®åæ¥ã该平å°è´è´£ä¸ºåæ¹æä¾åæ¥æºå¶ãä½ éè¦å®æ DataListener çé¢æå¯ä»¥æ¥æ¶æ¶æ¯ã建议å å¨å¯ç©¿æ´è®¾å¤Listeneræå¡å¹³å°ä¸å建ä¸ä¸ªå®ä¾ï¼ç¶åå¬äºä½ æå ´è¶£çäºä»¶ã
æ°æ®å±çé¢å¦ä¸æ示ï¼éæ©ä¸ä¸ªéåä½ çã
tatic interface DataListener {void onDataChanged(DataEventBufferdataEvents);}
static interface MessageListener {void onMessageReceived(MessageEventmessageEvent);}
static interface NodeListener {void onPeerConnected(Node node); void onPeerDisconnected(Node node);}
å ¶ä½çåè½ââå³éè¦é对ç¹å®ä¿¡æ¯éåçæ令ï¼å®å ¨åå³äºåºç¨ç¨åºçåè½éè¦ã
è¿ç¯æç« å°ç®è¦ä»ç»Android Wearï¼ç¶åä»ç»å ³äºå¼ååçå¹³å°ã
Android Wearæ¨å¨ä¸ºç¨æ·å¨å¯¹çæ¶é´æä¾æ°éåéçä¿¡æ¯éãæ ¹æ®è¿ä¸ä¸»é¢ï¼è°·æå·²ç»åå¸äºè®¾è®¡åå以帮å©å¼ååéä¸æèAndroid
Wearåºç¨ç¨åºãæ们å°å¯¹æ¤è¿è¡ç®è¦ä»ç»ï¼åæ¶ä¹å°ç 究å¨Android
Wearç¯å¢ä¸è¿è¡åºç¨ç¨åºå¼åçå¿ è¦æ¡ä»¶ï¼ä»¥åå¦ä½è¿ç¨å¯ç¨çAPI帮å©å®åå¼ååç åç¨äºAndroid Wearå¹³å°çåºç¨ç¨åºã
Android Wearå¹³å°
Android
Wearæ¯ç¨äºå¯ç©¿æ´è®¾å¤çå¼æ¾æä½ç³»ç»ï¼å®æä¸ä¸ªæ°çç¨æ·çé¢ââè¿æ¯è°·æäºè§£æ们å¦ä½ä½¿ç¨ææºä»¥åæ们å¦ä½æ´å¤å°ä¸ç¯å¢æ¥è§¦çç»æãä¾å¦ï¼æ°æ®æ¾ç¤ºï¼
æ们ç¨ææºæ¥çä¿¡æ¯å¹³åæ¯å¤©æ150次左å³ãæ¯æ¬¡æ们è¿æ ·åçæ¶åï¼é½æå¯è½è¿·å¤±å¨å ¶å®åºç¨ç¨åºéé¢ï¼å¸¸å¸¸å¨ä¸ä¸ªä»»å¡ç¨åºä¸æ¶èå¾å¤æ²¡å¿ è¦çæ¶é´ï¼ææ¶ç
è³å®å ¨å¿è®°æ们è¦æ¥è¯¢çæéè¦ä¿¡æ¯ã
第ä¸æ¹ä½¿Android Wearç«çèµ·æ¥çæ¯ä¸æGear LiveåLG G Watchï¼è¿ä¸¤æ¬¾è®¾å¤é½æ¯å¨6æ份çGoogle
I/O大ä¼ä¸åå¸çãæ表æ¯Android
Wearç第ä¸éæ©ç®æ ï¼ç¡®å®å¦æ¤ï¼å¤§å¤æ°äººæ¯å¤©é½ä½¿ç¨æ表ãè¿äºæè°çæºè½æ表é常é½éè¦åå®åææºé 对使ç¨ï¼éè¿ä¸ææ°å®åææºçæ ç¼é åï¼è°·æ让ç¨
æ·çå°Android Wearå¹³å°çæç¨ã
äºå®ä¸ï¼å¼å§ä½¿ç¨Android Wearæ¶ï¼ä½ æéè¦åçæ¯ä»¥ä¸å æ¹é¢ï¼
1. å®å4.3设å¤ï¼
2. æ¥èªè°·æåºç¨ç¨åºå¸åºçAndroid Wearåºç¨ï¼
3. é 对å®åææºè®¾å¤ä¸Android Wear设å¤ã
没éï¼å°±è¿æ ·ãåªè¦å好è¿äºï¼ä½ ææºä¸ç大é¨åä¿¡æ¯é½å¯ä»¥å¨å¯ç©¿æ´è®¾å¤ä¸æ¥çãä½ ä¸ä» å¯ä»¥å¨æ表ä¸æ¥çè¿äºä¿¡æ¯ï¼ä¹å¯å¯¹å®ä»¬è¿è¡äº¤äºãå é¤ççãè¿æ¾ç¤ºçæ¯ä¸é费任ä½åæ°æè è±å¾å°æ¶é´å°±å¯ä»¥è®©å®ååºç¨ç¨åºåé 对设å¤è¿è¡ââå®åææºç¨æ·é½å¯ä»¥è¿ä¹åã
éè¦æ³¨æçæ¯ï¼ææºåå¯ç©¿æ´è®¾å¤æ¯éè¿èçè¿è¡è¿æ¥çãå¯ç©¿æ´è®¾å¤ç®åè¿ä¸è½ç¬ç«è®¿é®ç½ç»ï¼æ以éè¦éè¿ææºè¿è¡è¿æ¥ã
è½ç¶Android Wearå¾çµæ´»ï¼ä½æ¯å®ç®åæå ³æ³¨çæ¯æ表类ã
ä¹æåï¼æ©æç½æåå¸äºä¸ä¼æå¾ çæºè½æ表Moto360ãå®éç¨çæ¯Android Wearç³»ç»ãç±äºç¾ä¸½ç设计ï¼Moto
360è·å¾å¾å¤§çèµèªï¼èä¸250ç¾å çå®ä»·ä¹è·å¾äºæ¶è´¹è ç好è¯ãå ¶ä»å¼ååï¼å æ¬åç¡ï¼å·²å®£å¸åå¸Android Wearæºè½æ表çç¸å ³è®¡åäºã
使ç¨æ¨¡å¼
ä¸Android Wear设å¤è¿è¡äº¤äºç两ç§ä¸»è¦æ¹å¼æï¼â建议âåâéæ±âã
â建议âï¼é¡¾åæä¹ï¼ä»¥éç¥çå½¢å¼ï¼æ¨éå°Android Wear设å¤çåæ¶æç¨çä¿¡æ¯ãç¨æ·çé¢æè¿è®¾ç½®æå¡ççå½¢å¼ï¼å¦ä¸å¾æ示ã
å¼å¾æ³¨æçæ¯ï¼Wearåºç¨ç¨åºè½è¯å«ä¸ä¸æè¯å¢ï¼æ以åªæ¨éææ¬å çä¿¡æ¯ãè¿ç±»éç¥åæ¶ãç®çãä¸ç¨æ·ç交äºè¾¾å°æä½ç¨åº¦ã
è³äºâéæ±â使ç¨æ¨¡å¼ï¼ç¨æ·éè¿è¯é³åå¯ç©¿æ´è®¾å¤ååºä¿¡å·ï¼å®å°±ä¼åå¤ä¿¡æ¯ã设å¤å«æ麦å é£ï¼éè¿è¯´âOK,
Googleâæç¹å»ä¸»å±å¹å°±å¯ä»¥è®©ç¨æ·è°ç¨ä¸ç³»åæ åæ§è¡å¨ä½ãç¨æ·çé¢ä¼æ示ç¨æ·è¯´åºæ³è¦æ§è¡çå¨ä½æ令ãæ åæ§è¡å¨ä½å æ¬âåç¬è®°âãâæçµè¯âå
âåä¿¡æ¯âãä½ å¯ä»¥å¨è¿ç¨ç¨åºä¸æ³¨åæ åæ§è¡æ令ï¼ä¹å¯ä»¥èªå®ä¹æ示ææ¬ã
设计ç念
ç°å¨ï¼æ们已ç»äºè§£Android Wearçåºæ¬ä½¿ç¨æ¨¡å¼äºï¼æ¯æ¶åçä¸ä¸ç¨æ·çé¢å设计æ导ååäºã
å¦ä¸æ示ï¼åç°ç»ç¨æ·çå¾å¤ä¿¡æ¯é½æ¯ä»¥å¡ççå½¢å¼åºç°çã
注æä¸ä¸å¡ççä¸åé¨åãç®åAndroid Wearåºç¨ç¨åºéç¥å°ä¼ä»¥ä¸é¢çæ åæ ¼å¼åºç°ãä½æ¯æ们è°è®ºçæ¯å©äºé 读åæä¸ä¸æç¸å ³åº¦çæå°éä¿¡æ¯ï¼ä½ éè¦è±äºæ¶é´èèä½æ¶å¢å ææ¬éç¥åéè¦æ¾ç¤ºçææ¬ã
éç¥å¯ä»¥å¨å个æå¤ä¸ªå¡çä¸æ¾ç¤ºãå¦æ使ç¨å¤ä¸ªå¡çï¼ç¨æ·éè¦ä»å·¦å°å³æ»å¨é¡µé¢è¿è¡æ¥çã
å¦ä»¥ä¸æ示ï¼éè¿å å ï¼ä½ çè³å¯ä»¥å¨å个å¡çä¸æ¥çå¤æ¡éç¥ã
设计Android Wearç¨æ·ä½éªæ¶ï¼æåä¸ªå ³é®ç¹éè¦è®°ä½ï¼æ¯ä¸ä¸ªGoogle Wear Designè§è§åæé¨åï¼Android Wearåºç¨ç¨åºé½åºè¯¥åå°ï¼
1. èªå¨å¯å¨ï¼ç¨æ·åºè¯¥ä¸éè¦å¦å¤å¨Wear设å¤ä¸å®è£ åºç¨ç¨åºï¼Wear设å¤ä¸æ¯ææºãAndroid Wearåºç¨ç¨åºåºè¯¥å¯ä»¥è¯å«æ¶é´ãå°ç¹åæ´»å¨ï¼å¹¶ç¸åºå°æ¨éç¸å ³å¡çã
2. æ读æ§ï¼å 为ç¨æ·æ设å¤æ´å¨æè ä¸ï¼æ以é 读éç¥åºè¯¥åæ¥çä¼ ç»æ表çæ¶é´ä¸æ ·å®¹æãè®°ä½ï¼ç¹å«å ³æ³¨é¢ç®ï¼è¶ç®çè¶å¥½ââå¯ä»¥ä¸ç¼å°±çå°è¦ç¹ã
3. ææå©ç¨â建议âåâéæ±â模å¼ï¼Android Wearå¼åå页é¢æ¾ç¤ºï¼âAndroid
Wearå°±åä¸ä½æ好çç§äººå©çãå®åªå¨ä½ å®å ¨ä¸éè¦çæ¶åæä¼åä¸ï¼å®æ»æ¯éæ¶åå½ä¸ºä½ æä¾çæ¡ãâ为äºæä¾è¿ä¸ä½éªï¼å¼åååºè¯¥èèä½æ¶å¦ä½ä½¿ç¨â建
è®®âåâéæ±â模å¼ã
4. ä¸ç¨æ·çé¶ä½äº¤äºï¼å¼ååºç¨ä¸ç¨åºæ¯éè¦è®°ä½å¯ç©¿æ´è®¾å¤é½ç¹å«å°åãåºç¨ç¨åºå¿ 须便äºç¨æ·è¿è¡äº¤äºï¼ä¹å°±æ¯è¯´å¯ä»¥ä½¿ç¨å£°é³æç®åçæ»å¨æç¹å»æå¿ã
Android Wear设计å¢éå·²ç»åäºå¤§éå·¥ä½ï¼è®°å½å¨ç°æAndroid Wearåºç¨ç¨åºä¸è¿è¡æ©å±æ¶å¦ä½ææå°æ´å设计ç念ãï¼æ¥çAndroid Wear设计é¨åãï¼
å¼å详æ
å¨æ¬é¨åï¼æ们å°å¸®å©ä½ åæ¥äºè§£Android Wearç åçå ³é®æ¦å¿µã
ä½ å¯ä»¥éæ©EclipseæAndroid Studioä½ä¸ºAndroid Wearçéæå¼åç¯å¢ï¼IDEï¼ãè°·æ建议ç¨Android Studioè¿è¡å¼åãéè¿AndroidçSDK管çè ä¸è½½API 20 (4.4 KitKat Wear)ï¼
Android Studioæä¾äºå¨ç°æåºç¨ç¨åºä¸æ·»å Android Wearæ¯ææå建æ°é¡¹ç®ç便æ·æ¹å¼ï¼Android Studioç¨çæ¯ç»ä»¶æ¨¡åï¼å ¶ä¸ææºåAndroid Wearæ¯å项ç®çä¸é¨åã
å¦æè¦å¨Android Studioå建ä¸ä¸ªæ°é¡¹ç®ï¼ç¹å»æ件- >æ°é¡¹ç®ãå¨å导ç第äºé¡µï¼éæ©ææå åï¼ç¡®ä¿éæ©Android Wear模åä½ä¸ºä½ å¼åçææå åï¼è§ä¸å¾ï¼ã
ä¸æ¦å®æææé项éæ©ï¼é¡¹ç®å°±ä¼èªå¨çæãä½ ä¼çå°è¿ä¸ªAndroid项ç®æ两个模åï¼ç§»å¨åWearã移å¨ç使ç¨äºææºçåºç¨ç¨åºï¼Wearæ¯å¨Android Wearä¸è¿è¡çç¨åºã
Wearåºç¨ç¨åºä¸å¯ä»¥ä½ä¸ºåç¬ç软件å æ¾å¨è°·æååºéãä½ éè¦æ移å¨åWearåºç¨ç¨åºæ¾å¨åä¸ä¸ªåºç¨ç¨åºAPKä¸ãå½ç¨æ·å¨ææºä¸ä¸è½½APKæ¶ï¼Wearåºç¨ç¨åºå°±ä¼èªå¨ä¼ å°é 对çWear设å¤ã
Android Studio产ççé»è®¤é¡¹ç®å¹¶æ²¡æä»ä¹ç¹å«ãå¨æµè¯æé´ï¼æ们éè¦èªå·±å代ç ï¼è¿åå³äºæ们æ³è¦åºç¨ç¨åºçâå¯ç©¿æ´âæ§è¡ä»ä¹ã
éç¥
Android Wearçå¼åå¯ä»¥ä»ä¸¤ä¸ªè§åº¦è¿è¡åæï¼éç¥åAndroid Wearåºç¨ç¨åºæ¬èº«ï¼å æ¬å¨APKæ件夹ï¼ã
对äºå·²ç»ä»è°·æååºå®è£ å®æ¹Android Wearå°ææºçç¨æ·ï¼ä»¥åå·²ç»æææºåWear设å¤é 对çç¨æ·ï¼ä¸éè¦å¨åºç¨ç¨åºä¸å¯¹éç¥è¿è¡ä»»ä½æ´æ¹ã
è½ç¶è¿æ ·è¯´ï¼ä½ä¸ºäºè®©Wearçæ£åæ¥ä½ç¨ï¼ææ¶åæ´æ¹æ¯æå¿ è¦çã
ä½ å¯ä»¥ä»¤éç¥åªåºç°å¨ææºæå¯ç©¿æ´è®¾å¤æ两è é½æãæ¤å¤ï¼å¦ä¸æè¿°ï¼å¼åååºè¯¥æ³ä¸å¦ä½å©ç¨ç¨æ·çé¢ï¼UIï¼ä¼å¿ââå³èæ¯å¾åãéç¥æ é¢ãææ¬ççã
å建å°åéå°å¯ç©¿æ´è®¾å¤çææå¼éç¥ï¼è°·æ建议使ç¨éç¥å ¼å®¹çæå¨ãAndroid çæ¯æåºæä¾äºä¸ç³»åç±»å«ï¼ä½ éè¦æ·»å å°ä½ ç项ç®ä¸ã
å¦æ使ç¨Android Studioï¼ä½ éè¦æ·»å ä¸åå±äºç§»å¨æ¨¡åä¸çbuild.gradleæ件çç¼è¯æ¶é´ã
compile "com.android.support:support-v4:20.0.+"
è¦å建éç¥ï¼ä½ å¯å¨ä½ ç移å¨åºç¨ç¨åºä¸å°è¯ä¸é¢ç代ç ï¼
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle(âNew APIâ)
.setContentText(âXYZ API got added to Food Categoryâ)
.setSmallIcon(R.drawable.ic_mynotification)
.setContentIntent(PhoneActivityPendingIntent);
ç¶åï¼ä½ å¯ä»¥æ ¹æ®ä½ çé»è¾è§¦åéç¥ï¼å¦ä¸æ示ï¼
NotificationManagerCompatnotificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(notificationId, notificationBuilder.build());
ç°å¨ï¼å½ç¨æ·å¨Wear设å¤ä¸æ¶å°éç¥æ¶ï¼ä»ä»¬å¨ææºä¸ç¹å»éç¥æè æ»å¨å°å·¦è¾¹å°±å¯ä»¥å¯å¨çå¾ æ¨¡å¼ï¼ç¶åæ¾ç¤ºå¼å§å¨ä½ã
ä½ä¸ºæ©å±é¨åï¼å¦ææ³è¦éç¥åªåºç°å¨ææºï¼ä½ å¯ä»¥éè¿å ·ä½è¯´æsetLocalOnlyæ¥å建éç¥ã
å¨ä¸é¢çä¾åä¸ï¼æ们åªæ¾ç¤ºäºä¸ä¸ªå¡çï¼ä½ä½ å¯ä»¥çä¸æå¤é¡µçè³æå çéç¥å¡çã
å¯ç©¿æ´åºç¨ç¨åº
è½ç¶Android Wearæ¯ææ¥èªææºçéç¥ï¼ä½ææ¶åè¿ä¸å¤ãæå ç§æ åµï¼å æ¬ï¼
å¨ææºä¸æ¶å°æ°æ®æ¶æ³è¦å¨Wear设å¤å¯å¨æ´»å¨ï¼
ä»Wear设å¤åææºåéä¿¡æ¯ï¼åè¿æ¥æ§è¡ä¸äºæ´»å¨æè å¨åå°åç¹ä»ä¹ï¼
å¨Wear设å¤ä¸å建èªå®ä¹çé¢ï¼
ç¼åä¸ä¸ªå¯ä»¥å¨Wear设å¤ä¸å¯å¨åè¿è¡çç¨åºï¼å¹¶ä¸å¯ä»¥éè¿æ¥æ¶è¯é³è¾å ¥å¯å¨ä¸åå¨ä½æ令ã
以ä¸æå°çé½æå¯è½å®ç°ï¼åææ¯ä½ äºè§£ä¸äºWear APIçåºç¡ç¥è¯ã
è¿æ¥åæ°æ®äº¤æ¢
åé¢æä¾çæ¡ä¾ä¸ï¼å ±åç主é¢æ¯ææºåWear设å¤é½éè¦ä¸ä¸ªå¯è¿ç»åæ¹çæºå¶ï¼ç¶åä¸æ¦å»ºç«èç³»ï¼å°±éè¦ç¸äºçä¿¡æ¯äº¤æ¢ãè¿åè¿æ¥å¯ä»¥è§¦åç¸åºè®¾å¤ä¸çæ£ç¡®æ令ã
ææºåå¯ç©¿æ´è®¾å¤ä¹é´çèç³»æ¯ç±è°·ææä¾æå¡çãè°·æAPI客æ·ç«¯æä¾äºè¿ç§èç³»çå®ä¾ã
mGoogleApiClient = new GoogleApiClient.Builder(context)
.addApi(Wearable.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
ä½ å¯ä»¥å¨åéçè¿å¨å¨æ建ç«æå ³éèç³»ï¼å¦ä¸æ示ï¼
@Override protected void onStart() {super.onStart();
mGoogleApiClient.connect(); } @Override protected void onStop() { super.onStop(); mGoogleApiClient.disconnect(); }
ä¸æ¦å»ºç«èç³»ï¼ä½ å¯ä»¥æ¥çä¸åAPIä¾åï¼ä»¥ä¿è¿è®¾å¤é´çæ°æ®åéååæ¥ï¼
Node APIï¼è¯¥APIæ¯ç¨äºä¸¤ä¸ªè®¾å¤è¿æ¥æå离使éè¿NodeListenerçé¢æ¹æ³ä¿æ追踪ã
Message APIï¼è¯¥APIæ¯ç¨äºåæ¹ç¸äºåéæ¶æ¯ãè¿éè¦æ¥æ¶æ¹ï¼MessageListenerï¼æä¸ä¸ªçå¬å¨å¯ä»¥æ¥æ¶æ¶æ¯ã
Data APIï¼è¯¥APIç¨äºè®¾å¤ä¹é´çæ°æ®åæ¥ã该平å°è´è´£ä¸ºåæ¹æä¾åæ¥æºå¶ãä½ éè¦å®æ DataListener çé¢æå¯ä»¥æ¥æ¶æ¶æ¯ã建议å å¨å¯ç©¿æ´è®¾å¤Listeneræå¡å¹³å°ä¸å建ä¸ä¸ªå®ä¾ï¼ç¶åå¬äºä½ æå ´è¶£çäºä»¶ã
æ°æ®å±çé¢å¦ä¸æ示ï¼éæ©ä¸ä¸ªéåä½ çã
tatic interface DataListener {void onDataChanged(DataEventBufferdataEvents);}
static interface MessageListener {void onMessageReceived(MessageEventmessageEvent);}
static interface NodeListener {void onPeerConnected(Node node); void onPeerDisconnected(Node node);}
å ¶ä½çåè½ââå³éè¦é对ç¹å®ä¿¡æ¯éåçæ令ï¼å®å ¨åå³äºåºç¨ç¨åºçåè½éè¦ã
温馨提示:答案为网友推荐,仅供参考