1.

gcm v3 에서 ios push 보낼수 있다고 해서 작업중인게 있었다.

기존 gcm은  data 에 message 를 실어 보내는데 (안드로이드),

iOS는 다르게 notification 에 message 를 보내줘야 aps 인식이 된다.


2. 

앱이 강제 종료 된 경우는 왜인지 push 를 못받길래, 검색해봤는데 이런 내용이 검색되었다.

https://github.com/googlesamples/google-services/issues/60#issuecomment-141958252


구글 샘플 프로젝트에서도 같은 증상인데, push 발송할때 priority: high 를 추가해서 보냈더니 잘 갔다는 댓글.


ios 쪽에 뭔가 많은 삽질을 하다가, 댓글대로 보내보니 push 를 잘 받았다.

2016/01/04 19:19 2016/01/04 19:19

버스 정류장 키트중에는 디스플레이 기능이 들어가있는 버전도 있다.


앱에서는 디스플레이 기능이 있는 정류장이 인식이 되면, 메시지를 보낼수 있는 아이콘이 나타나며

아래 사진과 같이 메시지를 보낼 수 있다.


라즈베리파이 2 에 LCD 가 안붙어서(??) 몇시간 삽질하다가,

혹시나하고 B 모델에 LCD 올려봤더니 동작한다 OTL..

(분명 몇달전엔 라즈베리파이 2 에 LCD 동작했었는데...)



메시지 보내기 관련 서버사이드 코드는 아래 링크에 등록되어있다.

https://github.com/team-flit/smart-busstop-chatter



2015/11/22 19:41 2015/11/22 19:41

구글 hackfair 에 제출할 앱에 Material Design 적용 작업을 진행하고 있다.


주로 테스트 올려서 테스트 하는 디바이스는 갤럭시 넥서스(kitkat 4.4- Cyanogen) 과 넥서스5 (marshmallow 6.0) 인데,  

루트 레이아웃부터 LinearLayout, RelativeLayout 로 되어있던걸 CoordinatorLayout 으로 바꾸고, 

아래쪽 목록뷰에도 스크롤 적용을 했다. ListView -> RecyclerView, CardView 적용.


design support library ( http://googledevkr.blogspot.kr/2015/06/designsupport.html ) 를 이용하면 하위버전에서도 Material Design 적용이 된다고는 하는데, 롤리팝 이후부터만 지원되는 기능들이 몇가지 있다.


StatusBar(시계랑 아이콘 표시되는 영역) 색상 적용은 Kitkat 에서도 이런 라이브러리를 쓰면 가능하나 시스템 기본은 지원하지않으므로(?) 그대로 뒀다 -_-


View 의 elevation 속성은 5.0부터 지원되는데, 그아래 버전에서는 평평하게(!!) 나타난다.

구분되는 부분을 elevation 속성으로 고쳐놨었는데, 구분되는(?)듯한 UI가 안보이니깐, 

롤리팝 아래 버전에는 구분선 뷰를 넣고 visible , 이후 버전에는 gone 으로 처리했다. 



앱 시작 스플래시 화면을 하위뷰로 두고 보여주는 식으로 처리했었는데, 루트레이아웃을 바꾸면서 넥서스5에서는 AppBar(ToolBar)아래부분에 - 그러니까 위에 AppBar 를 덮으면서 나와야되는데 - 나타난다, 갤럭시 넥서스에는 의도한대로 나오는데, 이부분은 Activity 방식으로 바꿔야 할 것 같다.




2015/11/18 22:55 2015/11/18 22:55

방금전 구글플레이 알파 테스트에 apk 를 업로드 하면서 나온 추가된 권한들 목록이다.


응(?)

저장소 쓰기 안쓰는데 뭐지... 찾아보니 AndroidManifest.xml 에 저장소 쓰기 권한이 들어가있었다.

프로젝트 생성할때 넣어두고 잊어버리고 있었나보다.


그 외에 권한에 변경점이라면 구글 맵 연동하면서 자동으로 추가된 내용인가보다.


build.gradle 의 defaultConfig 도 살펴보니 targetSdkVersion 21 로 되어있었다. 

여기도 만들때 그냥 그대로 두고 업데이트 안해놨나보다.


targetSdkVersion  23으로 바꿔놨으니 Runtime Permission 도 처리 해줘야겠군!


덧)

구글 플레이 서비스 (상위 모듈)을 넣어줬더니 의존성 걸려있었던 모듈에서 위의 추가되었던 기능들을 사용하는걸로 확인됐다.

아래코드로 수정한뒤 해당권한이 없어졌음.

compile 'com.google.android.gms:play-services-maps:8.3.0'

compile 'com.google.android.gms:play-services-location:8.3.0'


2015/11/18 16:00 2015/11/18 16:00

#1. 

이번 프로젝트에 gimbal beacon(사진 아래쪽 파란색) 도 이번 프로젝트에 쓸 수 있을까 해서

(기존 개발은 Light Blue Bean으로 진행됨 - 사진 위쪽), 

기존 코드를 수정해보고 stack overflow 등등을 찾아봤는데

제공해주는 SDK를 이용하지 않고서는 아마 어려울듯하다. 

BLE Scanner 앱을 이용해도 검색이 안되는걸로 보아 다른 방식으로 동작하는듯?


기존에 Light Blue Bean 을 사용하고 있었는데, 

데모 및 시연에서는 다른 팀원이 가지고 있는 것을 몇개 더 사용하는걸로 결정.


#2. 

위작업을 하면서 코드수정을 잘못 했나 Light Blue Bean(이하 LBB 로 표기) 가 인식이 안되었다.

git diff 를 봐도 그렇다할 수정사항을 못찾았는데, 

배터리를 교체하니깐 언제 그랬냐는듯이 정상 작동!

예전에 인텔 에디슨 프로젝트 하면서 LBB 에다가 아두이노 프로그램 올려놨던게 배터리를 빠르게 소모 했었을걸로 추측만 해본다. 


2015/11/13 16:33 2015/11/13 16:33

아랫글에서 이어지는 글

기존에 사용중인 개인 계정으로 구글 스토어에 등록을 해도 되지만,

FLIT 에서 앞으로도 무언가를 만들것이고, 이쪽에서 만드는 앱들만 따로 분류를 해야될것 같다는 생각이 들어, 계정을 새로 만들었다. 


팀 이름이 flit 이니깐, team.flit, dev.filt, project.flit 순서를 바꿔봐도 중복되는 아이디라고 나오길래, 가능했던 다른 조합(?)을 석준님께 보여주며 어떤걸로 할까요? 했더니 maker.flit 은 어떻겠냐며 ... 

오오 저 아이디는 가입이 가능했다.


이어서, 플레이 스토어에 개발자 등록을 했다. 몇년만(?)의 개발자 등록!

신용카드 체크용도로 1 USD가 빠져나갔다가 취소 되었다. (아마 일요일 01:00 쯤 AM) 

결제가 아직 진행 중이며 최대 48시간 걸립니다.

APK 업로드를 시작하고 스토어 목록을 준비할 수는 있지만 아직 애플리케이션을 출시할 수는 없습니다.

결제가 처리되고 애플리케이션을 출시할 수 있게 되면 알려드리겠습니다.


라는 문구가 나오다가, 아침에 일어나보니 새벽에 $25 USD 결제가 되었다는 문자가 와있었다.


몇달전 알파, 베타 테스트 기능이 쓸만하게(?) 업데이트 되었다는 소식은 들었는데, 

이번 프로젝트에서 이 기능을 써보기로 ...


안드로이드 프로젝트에 등록용 apk 를 만들어주는 gradle build task 에 releaseAPK 를 추가 했다.(gradle 스크립트 아직은 불편.... -_-)


테스트 APK 등록만으로, 테스트 URL 이 바로 나오는건 아니었고, 스토어 등록정보를 입력해서 게시됨 ! 상태가 되어야 테스트 항목을 사용할 수 있었다.

아는 사람은 알겠지만, 스토어 등록정보를 업데이트 하고나서 몇시간(?)동안 "업데이트 대기 중" 이란 문구가 나온다. 



 
 


알파,베타 테스트 링크로 접속하게 되면, 위와 같은 흐름으로 테스트 해볼 수 있다.


이런 방식의 장점이, 서버 어딘가에 apk 올려놓고 직접 다운받아 폰에 "알 수 없는 소스" 옵션(스미싱위험 노출)을 사용하지 않아도 된다는것, 업데이트가 있으면 매번 직접 배포하지 않고 스토어를 통해 업데이트가 가능하다는 점이 좋다. 


2015/11/09 18:38 2015/11/09 18:38

Google HackFair 공지글이 올라왔을때 ( http://googledevkr.blogspot.kr/2015/10/hack.html ) 내용을 보고,

몇달전 FLIT에서 만들었던 스마트 버스 정류장이 떠올랐다.


버스정류장에 설치하는 장치(비콘과 각종 센서들) 와 모바일 앱(Android, iOS)이었는데,

팀원들과 논의해본 결과 이것을 조금 더 발전시켜서 등록하자라는 방향으로 되었고

지난 주말 저녁 모임 시간때, 등록 신청을 했다.




FLIT 팀에서 만든 앱 올리기용 구글 계정과 플레이 스토어 결제도 했고,

기존에 만들어놨었던 코드가 android M 호환 문제가 있어서 코드수정을 좀 했다. 


소스코드는 github 에 등록되어 개발 진행중이다.

https://github.com/kfmes/SmartBusStop Android

https://github.com/colus001/SmartBustop iOS

https://github.com/team-flit/smart-busstop-chatter  Smart Busstop with Messaging Features


2015/11/09 12:44 2015/11/09 12:44

예전에 포스팅 했던 http://blog.kfmes.com/242 에서 이어지는 글.. (예전 포스팅 글 이후에 14.04 올렸다가 다시 12.04로 설치 했었음)


집에서 쓰고 있는 스피커는 사운드 입력을 두개 받을수 있다.

둘다 동시에 쓸 수 있는건 아니고, 신호가 세게 들어오는 것(?)을 크게 들려준다.


암튼 하나는 데스크탑에 연결 되어있고, 다른 하나는 파일서버에 USB 사운드 카드 연결해서 쓰고있었다.

에어플레이 서버용도로도 쓰고 있었고, 모바일 기기에서는 딜레이 좀 되는건 그러려니 하고 쓰겠는데 맥북으로 작업하면서 에어플레이 연결해서 쓰기엔 (유튜브 같은걸 볼때는 싱크가 안맞음) 불편하다. 그렇다고 이미 연결되어있던 케이블을 뽑아서 맥북에 연결하기도 뭐해서....


파일서버에 쓰고 있는 USB 사운드 카드의 line-in 을 이용해보기로 했다.


트레이에서 사운드 설정을 들어가서 input 을 봤는데...

뭔가 이상하다... 인식이 안됨(???)



구글링을 해봤다.

비슷한 상황을 겪는 사람들이 있군.. 하면서

https://lists.debian.org/debian-user/2013/12/msg01526.html

alsamixer 로 상태를 점검해보라고 해서 실행해봤는데,


$ alsamixer
cannot open mixer: 그런 파일이나 디렉터리가 없습니다


응?

-help 를 입력해보니 -c 옵션으로 사운드 카드를 지정할 수 있다.


0 번은 Invalid 로 나오고 1 번으로 인식됨


사운드 카드의 포트 정보들이 제대로 나오고 있었고, Line 쪽이 Mute 되어있었다!

Mute 를 해제하고, Master 하고 비슷한 수준으로 볼륨을 높여줬다.


아마 GUI 쪽에서 인식되었던 건 pulse audio 장치인데,

usb sound card - alsa mixer - pulse audio 순서로 인식이 되는 것 같았다.



2015/11/08 03:55 2015/11/08 03:55

구글링해서 찾은 내용을 기록용으로 남겨둠.


http://davistechyinfo.blogspot.kr/2014/07/android-determining-if-wearable-device.html


위 블로그 코드 요약.


mGoogleApiClient = new GoogleApiClient.Builder(this)

           .addApi(Wearable.API)

           .addConnectionCallbacks(this)

           .addOnConnectionFailedListener(this)

           .build();


connection callback 이 오면

Wearable.NodeApi 를 이용, 

NodeApi.GetConnectedNodesResult nodes =

                  Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();

          if (nodes != null && nodes.getNodes().size() > 0) {

              isConnectedToWearable = true;

          }

 

연결된 node 가 있는경우, 연결된걸로 처리.



2014/11/20 11:07 2014/11/20 11:07

예전에 10.04  LTS 사용할때는 인식이 잘 되었었는데, 

무슨일인지 현재 사용중인 시스템 (12.04 LTS)에서는 장치가 인식이 안되었었다.


usb sound 카드였는데, lsusb, dmesg 등등에서는 정상적으로 인식을 하는데, 

장치목록에는 안나오는게 이상했었다.


한참을 구글링을 하면서 삽질을 했는데 해결방법이 안나오다가, 

http://ubuntuforums.org/showthread.php?t=2059849


루트에서는 장치가 보인다고?


kfmes@note-hp:~$ aplay -l

aplay: device_list:252: 사운드 카드를 찾지 못 함...

kfmes@note-hp:~$ sudo aplay -l

[sudo] password for kfmes:

**** PLAYBACK 하드웨어 장치 목록 ****↵

Home directory /home/kfmes not ours.

0 카드: Device [USB Sound Device], 0 장치: USB Audio [USB Audio]

  하위장치: 1/1

  하위장치 #0: subdevice #0


응??


kfmes@note-hp:~$ cat /etc/group

...

...

tape:x:26:

sudo:x:27:kfmes

audio:x:29:pulse

...

pulse 만 audio에 등록이 되어있네?!

(그런데 pulse 쪽에서도 장치가 안보이던건 마찬가지였었음)


audio:x:29:pulse,kfmes 추가


재부팅 후 

kfmes@note-hp:~$ aplay -l

**** PLAYBACK 하드웨어 장치 목록 ****↵

0 카드: Device [USB Sound Device], 0 장치: USB Audio [USB Audio]

  하위장치: 1/1

  하위장치 #0: subdevice #0

으아니 권한 문제였다니?!


플레이 테스트 - 제대로 동작함







2014/07/10 16:14 2014/07/10 16:14

: [1] : [2] : [3] : [4] : [5] : [6] : [7] : [8] : ... [27] :