顯示具有 Android Wear 標籤的文章。 顯示所有文章
顯示具有 Android Wear 標籤的文章。 顯示所有文章

2015年7月26日 星期日

[Android - Wear] 上架你的App

Build之後會產生兩個apk檔,但是上架的時候只能傳一個。













如果你的作品是包含手錶及手機的話,那麼你只需要上架moblie-release.apk即可。


你可以在定價與發布裡面,點選Android Wear的選項,經過審核後應該就可以讓使用者在Android Wear類別之中找到你的App




但是,若是你的作品只有手錶的話,那們就上架wear-release.apk。


所以事實上上架Android Wear的App並沒有太大的不同,照著以前上架一般App的流程就可以了。



2015年7月22日 星期三

[Android - Wear] 安裝你產生的apk檔。

這篇文章不會講解產生keystore的步驟,比較偏向你已經知道怎麼產生APK了,但是不知道怎麼安裝的說明文。

當你的專案完工時,可以點選Build > Generate Signed APK,來產生APK檔。















接著選擇你的keystore檔,並且輸入密碼後,最後應該會產生兩個apk檔。











接著你只要安裝mobile這個apk檔,就可以了。




























當安裝完了後,你可以點開Android Wear進行同步的動作。




























這裡需要稍微等一會,如果還是沒反應的話可以多點幾次,如果沒問題的話,沒多久你會在手錶上看到這個畫面。























這麼一來就安裝好了。


2015年5月28日 星期四

[Android - Wear] Notification - 堆疊通知(Stacking Notifications)

 Notification - 堆疊通知(Stacking Notifications)

在針對手錶設計Notification時,你可能會希望通知可以堆疊起來,

拿Google的範例圖來說,就像是下面的效果。















同一個群組的通知都會擠在一起,超過一則以上就會有一個more的選項,

點下去就會展開,使用者可以選擇想看的通知來閱讀。

那該怎麼實現呢,必須要注意兩點。

1.Notification ID 要不同

如果發兩則Notifciation出去,結果ID相同,後發的會蓋掉前發的。

2.設定相同的Group ID

要疊在一起的Notification,必須要是相同的Group ID。

程式碼如下:



將這個程式跑起來後的結果如下






















手錶的通知的確是堆疊起來了,但是手機端的通知也許你不想要這麼多則。

















這時候我們可以加入Summary Notification,也就是手機只保留一則,而手錶的是堆疊狀態,以這個例子來說,手機端可以只傳一個通知,上面寫有兩則新聞即可。

因此我們必須創建第三個Notification,填入相同的Group ID,以及設定GroupSummary為真,意思是,這個 Notification是這組通知的摘要(Summary)。

如此一來,你會得到以下的效果。














手錶端只有兩則,而手機端只有摘要通知。

要特別注意一點,若是你拿以前的程式碼來做修改,可能會遇到這種狀況














手機端有摘要通知,又有一般的通知,看起來很智障。

你可以檢查一下你發通知的物件是不是這個

如果是的話,把它改成這個吧,應該能解決你的問題。

2015年5月20日 星期三

[Android - Wear] Notification - 語音輸入(RemoteInput)

Notification - 語音輸入(RemoteInput)

語音輸入(RemoteInput)是手錶相當重要的功能之一,因為在有限的大小內,要讓使用者用虛擬鍵盤輸入實在有些困難,因此Google為了解決這個問題,提供了語音輸入的機制。

在這個章節會示範如何在Notification裡面加入語音輸入的功能,使用者看到通知後,也許想要回覆這篇通知,卻又不想拿手機出來,就可以使用語音輸入的功能。

先創建一個最基本的Notification,可以參考前面的章節,並進行測試。

這是一個最基本的通知,接著我們加入語音輸入的功能,也是利用前面章節提到的addAction,來增加一個頁面,來實現我們要的語音輸入。

詳細程式碼可以參考這個


如此一來你的通知會多一個頁面,按下去就會像這個樣子。



























第一格是語音輸入,後面是我們幫使用者設定的快速輸入,

假如你有實際的手錶就可以試著對它說話,但是如果你是用模擬器的話,

你必須先把setChoices拿掉,只留語音輸入的部分,之後你就可以用鍵盤模擬語音輸入,

靠打字的方式來測試是否正常。

接著我們試著拿到使用者所輸入的文字,先創建以下這個事件。



接著我們就可以將使用者輸入的文字拿出來了。


如此一來就完成了簡單的語音輸入的範例,辨識的準確率還算可以,因此可以拿來做不少的應用。

下一章

Notification - 堆疊通知

2015年5月4日 星期一

[Android - Wear] Notification - 設定樣式

設定Notification的樣式

原本內建的Notification就可以設定一些樣式,像是BigTextStyle、InboxStyle,及BigPictureStyle等等,這些設定都會在Wear端有著不一樣的效果。

1.BigTextStyle
可以使Notification顯示更多的文字內容。
一般的狀態下,若是在setContentText設定過長的文字內容會變成以下這個樣子。

過多的內容會變成...來呈現。












但是在Wear端卻可以完整的顯示出來。






















以BigTextStyle來說,事實上是針對手機端的通知來做設定,因為即使不做任何的設定,手錶也能完整地呈現很長的ContentText。

所以,若是你想要手機與手錶都能完整的呈現通知的內容,就必須使用BigTextStyle。


兩個重點提示

1. BigTextStyle只是針對手機端做設定,手錶端並不會有太大的影響。
2. Notification物件還是得setContentText。

2.BigPictureStyle
這個可以發送一張圖片到通知之中。


重點提示

是NotificationCompat.BigPictureStyle物件而不是Notification.BigPictureStyle
小心不要創錯了。














然後Wear會有獨立一個頁面是放圖片。















3.InboxStyle
有點像BigTextStyle,但卻又沒有辦法顯示這麼多文字的內容。

多加幾行內容的style,但是過多還是會變成...,可能算是比較少見的style。


最後執行的結果如下














手機端還是會有一個極限,太多的會變成...,而手錶端倒是沒這個問題。

4.增加更多頁面

也許你想顯示更多的資訊給使用者,那就可以使用此功能。

有點類似之前提到的Action Button,只是這次是多加一個通知的頁面。


只要在你主要的Notification物件之中,在多加入其他的Notification物件就可以了。

這樣一來,你的通知就會多一個頁面,當然你也可以設定他們的Style。






















下一章

Notification - 語音輸入(RemoteInput)

2015年4月21日 星期二

[Android - Wear] Notification - 基本介紹

Notification - 基本介紹

對Android Wear來說,Notification算是一個很重要的功能之一,

可以快速且明確地提供使用者資訊,當手持設備(手機或平板),與手錶連線時,

手持設備會自動分享Notification到手錶之上。




在開始實作前,先確認你的手錶已經與手機連上線

且有開啟通知的功能!



1.一般的Notification
在手機端,傳送一般的Nofication,手錶也會同時收到。

一般的Nofication需要以下幾個步驟

決定辨識的ID

建立Notifiation

透過NotificationManagerCompat發送出去


要特別注意的一點,建立Notifiation時,一定要設定Icon,否則就不會傳送出去。

手機及手錶收到通知時的畫面。



手錶打開通知的畫面。

2.加入Intent

有時候可能會想讓使用者點了通知後開啟某個頁面。


要特別注意的是,這邊的Intent要使用PendingIntent才行。

如此一來,我們的通知會多一個頁面,點下去後就會開啟剛才指定的Class

3.加入Action Button

也許我們會想要有更多的頁面來做其他的事情,像是除了Open on Phone以外,

還想開啟其他頁面,或者是開啟Google Map之類的。


這樣一來你的通知又會多一個頁面,點下去後就會開啟Google Map,並到台北火車站。















如果模擬器的Google Map有問題,記得上Google Play更新。

4.建立只有Wear才有的頁面

上述的例子都是手錶與手機共通都有訊息。

也許有些情況,我們希望特定的頁面只存在手錶端。

就必須靠WearableExtender才能達成。


如此一來,地圖的頁面就只會在手錶端出現了。

5.增加背景圖片及修改icon

透過setLargeIcon即可讓你的Notification有背景圖片。

你可能會碰到這個問題,明明背景圖片改了,icon也改,但是手錶還是小機器人。






















因為手錶的Notification的icon是對應你APP的icon,因此要改的話要改APP的icon,

而不是單純的只改seticon,seticon只能在手機端上更改。

將AndroidManifest裡面的android:icon改成你要的icon即可。

下一章

Notification - 設定樣式

2015年4月12日 星期日

[Android - Wear] 開發環境設定

前言

Android Wear , 也就是Android陣營的智慧型手錶,

Google也提供了一系列開發的教學內容,但是並不是這麼容易理解,或者是可能會遇到一些問題。

因此我想試著以Android Wear這個主題來寫一系列的文章,一來幫助自己做筆記,也許能夠幫助以後找資料的人們,此外也希望能夠有人提出建議及改進,也許觀念或認知上有所錯誤。

※這邊都是使用Android Studio來進行開發

開發環境設定

1.安裝Android Wear APP

目前手錶與手機溝通的橋樑是透過Google所提供的APP,名為Android Wear,

版本限制為4.3以上,若是手邊沒有相關設備,就得靠模擬器了。

Android Studio內建的模擬器裡面並沒有Google Play,

在這邊我推薦使用Genymotion的模擬器來進行開發。

安裝方法可以參閱這篇文章


先設定一個模擬器,在這裡挑選5.0版本的設備,

手錶算是比較新的東西,一般而言比較推薦Android版本在4.4以上。

打開之後會發現裡面並沒有Google Play商店

你可以到這個網站來下載Google服務的APK

https://basketbuild.com/gapps

選擇你模擬器的版本,並進行下載。

下載完後,把這個zip檔,直接拖曳到Genymotion模擬器之中。

這樣就會進行安裝的動作。



安裝完重新啟動模擬器,就會發現Google Play Store出現了。

然後可能會有一些錯誤,或者要你重新安裝一些Google相關的軟體(像是Google +),

不過沒關係,跟著引導輸入完帳號後就可以更新了。

等到大部分問題都解決後,到Google Play Store輸入Android Wear並安裝。


但是有可能會有一個情況發生,根本找不到這款APP,

實際連到這款APP的頁面他居然說你的裝置無法安裝。


假如你遇到這種情況,可以試著直接下載Android Wear的APK來進行安裝。

像是到這個網站來進行下載。


一樣靠拖曳就可以進行安裝,接著他有可能叫你更新Google Play services,就更新吧。

最後開啟Android Wear APP,看到這個畫面就算完成一半的準備工作了。


2.創建Android Wear模擬器

這個步驟相對來說算簡單,Genymotion目前好像沒有Wear的模擬器,

那我們用Android Studio內建的模擬器來創建即可,圓形或方形,容量大小及版本等,,

都設定好就可以打開了。


3.將手錶與手機連上線

先將你的SDK路徑複製起來,等等會用到,

點左上角的File → Project Structure,可以較快速的知道路徑位置。


打開你的終端機前往SDK的資料夾

輸入CD 路徑

例如:

MAC

cd /Users/abcd/Desktop/adt-bundle-mac-x86_64-20140702/sdk

Windows

cd C:\Users\abcd\AppData\Local\Android\sdk

到了SDK資料夾後再往下一層走

cd platform-tools

之後試著打指令

MAC

./adb devices

Windows

adb devices

如果前面都沒做錯,那他會顯示目前有在運行的所有設備

像是這樣

List of devices attached 
192.168.56.101:5555 device
emulator-5554 device

一個是手錶,一個是手機,前面一整串是他的名稱,

以這個例子來說 192.168.56.101:5555 是手機名稱,

獲得這個名稱後,我們將他的防火牆其中一個port打開,這樣可以跟手錶連接

輸入這個指令

./adb -s deviceName forward tcp:5601 tcp:5601

把deviceName改成剛才得知的設備名稱即可。

例如

MAC

./adb -s 192.168.56.101:5555 forward tcp:5601 tcp:5601

Windows

adb -s 192.168.56.101:5555 forward tcp:5601 tcp:5601

如此一來你的手機與手錶就會連線了。


要特別注意的是,每次重開模擬器都必須做一樣的事情才能連線喔。