안드로이드 스튜디오에서 간단한 위젯은 클릭 몇 번 만으로 나타나게 할 수 있다. 프로젝트 화면 - app 클릭 - 마우스 오른쪽 메뉴 - New - Widget - App Widget 을 클릭하면 다음과 같은 창이 나타난다. [Finish] 버튼을 누르고 바로 실행해서 에뮬레이터 화면에 위젯 추가한 화면 이다. 클릭만으로 위젯 껍데기는 완성되는 셈이다. 실행 되는 걸 봤으니 위 위젯 추가로 어떤 파일이 추가/수정 되었는지 보자. 추가된 파일 > ./MyAppWidget.java ./xml/my_app_widget_info.xml ./layout/my_app_widget.xml 수정된 파일 > ./AndroidManifest.xml 위젯을 만드는데 필요한 예제가 그대로 만들어 지는 셈이다. 위젯 버튼을 클..
CheckboxPreference를 사용 할 때는 분명히 onPreferenceTreeClick으로 이벤트가 들어왔다. 하지만 SwitchPreference를 사용하면 onPreferenceChange로 이벤트가 들어오니 주의 하여야 한다. onPreferenceTreeClick if (KEY_SETTINGS.equals(preference.getKey())) { ..... return true; } 그러나, 더 심각한 문제는... 스위치를 끄고 켤 때 마다 이벤트가 2번씩 들어 온다는 것이다. 이를 해결 하기 위해서는 아래처럼 새 이벤트 헌 이벤트를 검사해주어야 한다. 이것이 더 웃긴 것이 단말기 마다 다르다는 점이다. 어떤 단말기는 2번 이벤트를 1번으로 줄여서 보내주고 어떤 단말기는 2번 다 보내니..
앱에서 구글 admob 광고를 넣으려면 필요한 lib가 있는데, 안드로이드 스튜디오 사용자는 툴에서 추가 가능하다. Open Module Settings 창(프로젝트 창에서 [app] 을 클릭한 상태에서 마우스 오른쪽 메뉴, 또는 F4 누르면 뜸)에서Ads를 체크해서 추가하면 필요한 dependencies가 추가된다. build.gradle 파일을 확인해 보면 아래와 같이 추가 되었음을 확인 할 수 있다.dependencies { compile 'com.android.support:support-v4:23.0.1' compile 'com.google.android.gms:play-services-ads:7.3.0' } 위 과정후 코드로 광고 추가하면 된다. 개발 할 때는 테스트모드로 광고 확인하자. 애드..
개발 중 애드몹(admob) 광고를 달고 테스트 하다 보면 조회수가 올라갈 텐데요, 앱을 테스트할 때 무효 노출이 발생하지 않도록 하려면 테스트 광고를 요청하는 것이 좋습니다. 방법은 코드 상으로 adRequest를 호출할때, addTestDevice를 하면 됩니다. 릴리즈 시에는 .addTestDevice() 부분은 주석 처리하면 됩니다. mAdView = (AdView) findViewById(R.id.adMobView); AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) // 테스트 광고 요청 .build(); mAdView.loadAd(adRequest); 출처: https://deve..
안드로이드 브로드캐스트 리시버에서 하지 말아야 할 것들... 일단 생각 나는 것부터 적어 보자. 1. 프로그래스 다이얼로그를 쓰지 말자. 2. asyncTask를 쓰지 말자. android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 둘 다 위와 같은 에러가 난다. 왜냐? 브로드 캐스트는 시스템 스레드에서 도는데 1, 2번은 UI 스레드에서 돌기 때문이다. '결국, 너는 누구냐?' 가 된다
브로드캐스트를 날리면 티켓을 끊어 놓은 리시버가 무조건 받겠지 하고 생각 할 수도 있지만, 회사 내부 사정으로 티켓을 취소 해버리는 경우도 발생 할 수 있다는 점도 알고 있어야 한다. 리시버에 등록 해놓으면 OS가 기억 하고 있다가 보낼 시간이 되거나 보낼 타이밍이 되면 브로드캐스트를 날린다. 하지만 OS도 내부적으로 바쁘거나 여타 기타 사정으로 브로드캐스트 메시지에 유효기간을 정해 놓았을 경우가 발생 할 수도 있다. 즉, 분명 어떠한 순간에는 이 메시지를 놓칠 수도 있다는 거다. 그럼 어떻게 해야 할까? 어떻게?? public class InitReceiver extends BroadcastReceiver { @Override public void onReceive(final Context contex..
언제 어디에서나 내가 원하는 말을 듣고 싶을 때가 있죠? 힘이 나는 말, 격려가 되는 말등 내 마음을 만져주는 말은 무었일까요? 정답은 나만 알고 있습니다. 다른 사람이 나의 마음은 알기 힘들기 때문이죠. 그래서 코모가 언제 어디에서나 내 마음의 말을 듣을 수 있게 '말하는 시계 (내 마음을 말해줘)' 라는 앱을 런칭 했습니다. 사실 대규모 업데이트라고 해야 겠죠. 이전 버전에서는 말하는 기능 밖에 없었지만, 이번 1.0.9 버전에서는 정말 편리한 기능이 많이 추가 되었습니다. 1. 현재 시간 말해주기 - 첫 화면의 현재 시간 말해주기를 체크 하고 나서 폰을 뒤집거나, 근접센서(보통 전면 카메라 근처에 있어요)에 손을 살짝 올리면 현재 시간을 말해줘요. - 라식/라섹 수술 하신 분들께 정말 강추 드립니다..
언제 어디에서나 내가 원하는 말을 듣고 싶을 때가 있죠? 힘이 나는 말, 격려가 되는 말등 내 마음을 만져주는 말은 무었일까요? 정답은 나만 알고 있습니다. 다른 사람이 나의 마음은 알기 힘들기 때문이죠. 그래서 코모가 언제 어디에서나 내 마음의 말을 듣을 수 있게 '말하는 시계 (내 마음을 말해줘)' 라는 앱을 런칭 했습니다. 사실 대규모 업데이트라고 해야 겠죠. 이전 버전에서는 말하는 기능 밖에 없었지만, 이번 1.0.9 버전에서는 정말 편리한 기능이 많이 추가 되었습니다. 1. 현재 시간 말해주기 - 첫 화면의 현재 시간 말해주기를 체크 하고 나서 폰을 뒤집거나, 근접센서(보통 전면 카메라 근처에 있어요)에 손을 살짝 올리면 현재 시간을 말해줘요. - 라식/라섹 수술 하신 분들께 정말 강추 드립니다..
Preference Dailog 즉, listprefernce, dialogpreference, muliselectelistpreference등은 기본적으로 Preference Screen에서 선택하면 뜨도록 되어있다. 하지만, 수동으로 띄워야 할 경우도 생긴다. 방법은 생각보다 간단하지만, 이 방법을 생각 해내기 까지는 쉽지 않다. ((MyDialogPreference) findPreference(KEY_DIALOG)).show(); public void show() { showDialog(null); } 1. 다이얼로그를 띄울 곳에서 .show를 해주고,2. Preference에 가서 show 메서드를 만들어 주면 된다.
시간이 흘러간다는 것은 아시나요? 시간의 흐름과 함께 가고 계신건 아시나요?시간의 흐름 속에서 세월의 흐름을 잊고 계신건 아시나요? 이제 당신의 시간을 되찾아 와보세요. 시간을 세상에 맡겨두지 마시고, 이젠 항상 곁에 두세요. 소중한 나의 인생의 흐름을 느껴보세요.시간과 함께 호흡하며 살아 보세요.가을 하늘 높아지는 낭만과 함께...구글플레이에서 무료로 다운로드 받기 정말 사용하기 쉽습니다. 앱 전원을 켜기만 하면 매일 오전 8시부터 오후 10시까지 정각에 알림음과 함께 시간을 음성으로 알려드립니다!(아무 설정을 하지 않아도 말 해드리니 걱정 마세요! 전혀 어렵지 않아요!) 우측의 동그란 플레이 버튼을 누르면 언제든지 미리 들어 볼 수 있습니다! 내가 직접 만든 문구를 매 시간 정각에 (알람: 음성, 벨..