본문 바로가기

Android68

soundpool 사용 시 매너모드/무음모드 연동 soundpool은 안드로이드에서 간단한 소리를 재생할 때 유용하게 사용할 수 있는 방법입니다. 기본적인 사용방법은 1. onstart에서 load Soundpool soundPool @Override public void onStart() { super.onStart(); soundPool = new SoundPool(4, AudioManager.SRTEAM_SYSTEM, 100); soundsMap = new HashMap(); soundsMap.put(1, soundPool.load(getActivity(), R.raw.sound1, 1)); } onStart에서 load해 주어야 soundpool을 사용할 수 있습니다. 이후에는 시스템리소스에서 상주하며 soundPool.play 로 언제든지 재생.. 2018. 5. 5.
특정 작업시 화면이 꺼지지 않게 유지 public void KeepScreenOn(Integer stateKeepScreen) { if (stateKeepScreen == 0) { getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } else if (stateKeepScreen ==1) { getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } } 특정작업을 수행할 때 화면이 꺼지지 않도록 하는 방법. 사용시에는 KeepScreenOn(1); , KeepScreenOn(0); 으로 사용합니다. Flag와 clearFlag로 만들었습니다. 상기.. 2018. 4. 26.
알림바(Notification Bar)를 누를 때 프레그먼트 실행 하기 보통, 앱에서 사용하는 알림바(Notification Bar)를 눌렀을 때는 액티비티로 이동하게 됩니다.하지만, 프레그먼트를 사용할 때는, 프레그먼트로 이동하게 해 주어야 좀 더 다양한 작업들을 할 수 있습니다. 프레그먼트의 경우 단독으로 사용하기 보다는 여러개의 프레그먼트를 묶어서 뷰페이저를 통해서 사용하게 됩니다. 노티피케이션에서 프레그먼트를 실행하는 방법은 아래와 같은 과정을 통해서 동작하게 됩니다. 1. 알림바(Notification Bar)를 사용하여 알림.2. 알림바를 누르면 메인액티비티를 실행.3. 메인액티비티에서 노티피케이션에서 실행된 것을 확인하면 뷰페이저의 특정 프레그먼트로 이동.3. 프레그먼트로 이동 이후, 원하는 작업을 수행. 1. Notification 알림 띄우기 public s.. 2018. 4. 10.
뷰페이저 사용 시 특정 프레그먼트로 이동하기 뷰페이저를 사용할 때 프레그먼트에서 작업 후에 특정 프레그먼트로 바로 이동하는 방법은 아래와 같다. 메인 액티비티에 아래와 같은 메소드를 구현해 준 뒤 프레그먼트에서 호출해 준다. static ViewPager viewPager; public static void MoveFragment() { viewPager.setCurrentItem(2);} 2018. 4. 10.
앱 빌드 후 android.permission.READ_PHONE_STATE 추가현상 안드로이드는 앱의 기능제공을 위해서 AndroidManifest에 권한을 명시해주어야 합니다. 특정한 권한의 경우에는 추가적으로 사용자의 동의를 얻은 이후에야 활성화되고 앱의 기능제공을 위해서 기기를 이용할 수 있게 됩니다. 그런데, 이번에 업데이트를 위해 앱을 빌드하고 출시하는 과정에서 AndroidManifest에 명시해놓지 않았는데도 불구하고 권한이 하나 추가되어 있는것을 확인했습니다. android.permission.READ_PHONE_STATE가 멋대로 추가되어 있는 현상이었는데, 불필요하게 과다한 권한요구에 대해서 유저의 피드백이 좋지않고, 개발에 있어서도 필요한 최소의 권한만을 요청하는것이 맞다고 생각하는데이렇게 의도하지 않은 권한요청이 발생하는 것은 불편한 일입니다. 권한요청이 멋대로 추.. 2018. 3. 31.
구글 플레이 스토어에서 앱 최신버전 가져오기 구글의 플레이스토어에서 가장 문제가 된다고 생각하는 부분은, 어플리케이션이 독립적으로 최신버전을 확인하도록 할 수 있는 방법을 제공하지 않는다는 것입니다. 구글의 안드로이드는 '플레이스토어'라고 하는 앱마켓을 기반으로 앱을 관리하고 있습니다. 보통 앱의 최신버전은 마켓을 통해서 자동 업데이트 되지만 앱마켓의 캐시에 따라 앱의 버전 배포가 일정하지 않아 유저마다 앱이 최신버전으로 자동업데이트 되는 시점이 일치하지 않고 심지어 유저가 앱마켓에서 자동 업데이트를 설정하지 않는 경우에는, 유저가 앱 마켓을 실행하지 않으면 앱의 최신버전 업데이트를 알리거나 강제할 수 있는 방법이 없습니다. 버전 파편화가 심한 안드로이드가 이러한 시스템으로 인하여 앱의 버전 파편화까지 발생하는것이 가장 큰 문제점이라고 생각합니다... 2018. 3. 31.
안드로이드 인앱 결제 Google Play Billing Library 안드로이드 Developer 한글 가이드 라인에 구글 인앱결제를 구현하는 내용에는 인앱 결제시 SDK manager를 이용하는 하단의 방법이 기재되어 있습니다. 프로젝트에 AIDL 파일 추가IInAppBillingService.aidl은 In-app Billing Version 3 서비스에 대한 인터페이스를 정의하는 AIDL(Android Interface Definition Language) 파일입니다. 이 인터페이스를 통해 IPC 메서드를 호출하여 결제를 요청합니다.AIDL 파일을 얻는 방법은 다음과 같습니다.Android SDK Manager를 엽니다.SDK Manager에서 Extras 섹션을 펼칩니다.Google Play Billing Library를 선택합니다.Install packages를 .. 2018. 3. 2.
Fragment 를 사용할 때 EditText의 Focus를 없애기 EditText의 외부를 클릭해서 EditText의 Focus를 없애고 키보드를 내리기 위한 방법을 찾다보니, 많은 예제에서 다음의 방법을 제시하고 있습니다. 1. editText의 상위 레이아웃 XML에 다음의 속성 부여. android:clickable="true" android:focusableInTouchMode="true" 2.1 editText에 onFocusChangeListener 적용. edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus) { InputMethodManager in.. 2018. 2. 23.