다채로운 iOS 알림을 위해 aerlink 수정하기

AdSense

모토 360가 값싸게 팔리면서 국내에서도 사용하시는 분들이 많아졌습니다. 안드로이드웨어 스마트워치와 iOS와 연동해서 쓰시는 분들도 늘었습니다. 그리고 모토360이 5.1.1로 버전업 되면서 블루투스가 끊기지 않고 보다 안정화되었습니다.


하지만 iOS와 연동해서 할 수 있는거라곤 알람 확인하기.


연동 워치 앱이 해외 개발자가 제작하다보니 국내용 앱들의 알람이 단조로운 기본 아이콘으로 표시됩니다. 이왕 써보는거 예쁘게 써보고자! 코드를 수정해서 사용해봅시다.


개발자 입장에서 작성한 글입니다… 일반 사용자가 얼마나 따라할 수 있을지는 잘모르겠습니다;;



우선 소스코드를 다운받아야 합니다. GitHUB에서 소스코드를 다운받습니다 [링크 가기] (http://github.com/GuiyeC/Aerlink-for-Android)



오른쪽에 있는 Download ZIP을 눌러 압축파일을 다운받습니다. 압축을 적당한 장소에 풀어두세요.


압축을 푼 후에 내부 폴더 중 wear > src > main > res > drawable-hdpi 폴더을 엽니다.

폴더 내부에 이미 등록된 알림 아이콘들이 있습니다.


아이콘 이미지 크기는 60x60입니다.


    


몇가지 만들어본 아이콘들입니다.


아이콘을 만들어 적당한 이름으로 폴더에 넣어둡니다.


그리고 소스를 수정하고 빌드할 프로그램을 다운받습니다. Android Studio [링크 가기] (https://developer.android.com/sdk/index.html)

압축을 풀어줍니다.


강좌는 맥에서 진행되지만 윈도우도 동일하게 하시면 됩니다.


Android Studio를 열어

화면에 표시된 Open an existing Android Studio project를 선택하여 이전에 코드를 받은 압축해제한 폴더를 열어줍니다.



프로젝트를 열면 위의 사진처럼 mobile, wear가 보일겁니다.

wear > java > com.codegy.ioswearconnect > NotificationDataManager 를 열어줍니다.



소스코드를 보면



위 그림처럼

"com.viber":

~~~~~

break;

로 되어있는 부분이 있을겁니다.


그 뒤에 다음과 같은 형식으로 적으시면됩니다.


case "[bundle id]"

notificationData.setAppIcon(R.drawable.[아이콘 이름]);

notificationData.SetBackgroundColor(Color.rgb([배경색 rgb코드]));

messageApp = true;   (메세지 앱 일 경우)

break;



이런식으로 적으시면됩니다. [] 괄호 부분을 수정하시면 될겁니다




여기서!

번들 id가 뭔가하면 app마다 각각의 고유 id가 있습니다.

어떻게 알아내느냐 하면 아이튠즈를 통해 백업받은 ipa 파일을 확장자를 zip으로 변경하여 압축을 풉니다.

폴더에 보면 iTunesMetadata.plist라는 파일이 있을겁니다.

이 파일을 plist editor나 다른 텍스트 편집기로 열어 아래쪽에 softwareVersionBundleId라는 항목의 값을 찾아 적으시면됩니다.


아이콘 이름은 확장자를 제외한 아이콘 이름을 입력하구요


배경색 정보는 워치의 aerlink에서 색깔 배경보기를 선택했을 때, 알림카드를 볼 때 보이는 배경색을 지정하는 것입니다. rgb코드를 적으면 됩니다.


카카오톡 등의 메세지 앱의 경우 알림이

" 상대방 이름 : 내용 "의 형태로 오는 알림이 있습니다.

이런 알림일 경우 알림의 이름이 앱 이름이 아닌 상대방 이름으로 보일 수 있도록 설정하는 부분입니다.

메세지 앱일 경우엔 messageApp = true; 부분을 추가합니다.




이렇게 작성 후 빌드해줍니다.





여분의 안드로이드폰에 연동하여 쓰시는 분은 폰을 컴퓨터에 연결 후 usb debugging기능을 활성화 후에(확실하지 않습니다…)

위 사진과 같이 mobile 프로젝트 선택하고 run(재생버튼) 해주시면 됩니다. (기존의 플레이스토어 aerlink는 삭제하셔야 할겁니다)

다음 창에서 연결된 폰을 선택하시고..... 하시면 될겁니다.(제가 안드로이드기기가 없어서 자세히 알려드릴 수가 없습니다)


그 외에 USB연결이 되는 워치 기기는 usb연결 후 wear 프로젝트를 선택하고, run을 하시면 될겁니다..(역시 불확실합니다)



패러렐즈로 가상 안드로이드기기와 연동하셨던 분은 아마 페러렐즈를 쓰셨을텐데


페러렐즈에 연동하여 설치하셨던 분은 

mobile  프로젝트 선택 후 Build > Rebuild project 해주시면 프로젝트 폴더내의 mobile > build > output 폴더안의 apk가 보일겁니다. (run을 눌러도 될겁니다. 연결된 폰을 선택하라는 창이 뜨면 취소하시면 될겁니다)

해당 apk를 페러렐즈로 옮겨 설치 후 천천히 여유를 가지고 기다리시면 워치로 새로운 앱이 동기화 될겁니다.

저는 es탐색기를 통해 옮겼습니다. samba공유폴더로 옮겼습니다.


혹은 Build > Generate Signed APK를 선택하셔서 하셔도 됩니다. 별반 차이는 없을겁니다. 키 스토어를 지정하라고 나올텐데 새로 생성하셔서 apk를 생성하시면 과정 중에 지정된 경로에 apk파일이 있을겁니다.

안드로이드 기기에 설치하거나 페러렐즈로 옮겨 설치 후에 천천히 동기화를 기다리시면 될 겁니다.


이 동기화 과정에서 어느 정도의 시간이 소요되던데요.. 이 과정에서 제대로 안되서 워치 재부팅 해보고 wear앱에서 resync App 누르면서 천천히 기다렸습니다.

(몇 번 재부팅하고 했습니다…)



앱이 정상적으로 동기화 이후에 재실행 또는 재부팅하시게되면 (재부팅이 확실할겁니다…)






이렇게 알림 옆에 아이콘이 커스텀되어 나타나는 것을 확인할 수 있을겁니다.



----------------------------------------

* 빌드를 할때 NotificationData 파일이 아닌 다른 파일에 오류가 날 수 있습니다. (오류는 Android Studio 하단에서 확인 가능)

저는 맥이라서 그런지(유니코드관련?) 다국어지원파일에서 오류가 났었는데, 한국어 지원 파일이 아니면 그냥 삭제하셔도 무방할거 같습니다. 따옴표 관련 문제였습니다.



제가 수정한 파일 첨부해드립니다.

카카오톡, CliOS, 네이버카페, 신한smail, 지하철프리, 애플 아이튠즈 커넥트 적용되었습니다.


mobile-release.apk.zip