본문 바로가기

프로그래밍/Android

Postman을 이용하여 Firebase Notification 전송하기 기존 파이어베이스 콘솔에서 알림을 생성하던 방식에서 회사 시스템을 통해서 예약 등의 파이어베이스에서 지원하지 않는 기능들을 추가하려고 한다. 이 작업을 위해 Firebase Cloud Messaging(FCM)의 API를 확인하는 검토작업을 하였다.테스트 순서Postman을 통하여 FCM API를 호출하여 json을 전달한다.기 개발된 앱에서 알림을 확인 한다.위에 언급했듯이 이미 회사에서는 FCM 콘솔을 통하여 알림을 사용하고 있다. FCM은 다음과 같이 세 가지 방식으로 메시지를 전달 할 수 있다.Device Token(App이 FCM에 받은 Token)주제 (Topic)전체 (플랫폼[ios, android]은 구분한다.)이 중, 주제를 가지고 주로 사용한다. 앱에서 서버와 미리 약속한 주제를 구독(.. 더보기
Android Hash 키 가져오기 페이스북SDK,카카오톡SDK등과 연동하기 위해서는 반드시 해시키(Hash key)를 등록 해야 합니다. 해시키(Hash key)는 Android 개발 환경에서 가지고 있는 인증서 바이너리에 대한 해시값으로 쉽게 앱 고유의 키캆이라고 생각 하면 됩니다.페이스북SDK,카카오톡SDK등에서는 등록된 해시키(Hash key)를 가지고 각각의 앱을 구분하여 설정된 기능을 제공 해주게 됩니다. 해시키(Hash key)는 개발용 key와 릴리즈용 key가 있는데, 이 둘의 차이는 말그대로 개발용 key는 개발할때만 사용 하는 키로 본인의 Android 개발환경에 기본적으로 저장되어 있는 인증서 바이너리에 대한 해시값이고 릴리즈용 key는 실제 앱을 배포할떄 사용한 인증서 바이너리에 대한 해시값입니다. 앱을 실제 앱스토.. 더보기
Android Device ID 가져오기 Android 기기에서 DeviceID 를 가져오는 방법은 다음과 같다. if ( ContextCompat.checkSelfPermission( this, Manifest.permission.READ_PHONE_STATE ) != PackageManager.PERMISSION_GRANTED ) { TelephonyManager telephonyManager; telephonyManager = (TelephonyManager) getSystemService(Context. TELEPHONY_SERVICE); String deviceId = telephonyManager.getDeviceId(); return deviceId; } 더보기
Android Device Mac Address 가져오기 Wifi Mac address 말고 휴대폰에도 각각의 MAC Address가 존재한다. 다음과 같이 이용할 수 있다. public static String getMacAddress() { try { List all = Collections.list(NetworkInterface.getNetworkInterfaces()); for (NetworkInterface nif : all) { if (!nif.getName().equalsIgnoreCase("wlan0")) continue; byte[] macBytes = nif.getHardwareAddress(); if (macBytes == null) { return ""; } StringBuilder res1 = new StringBuilder(); for.. 더보기
Bluetooth 설정 화면 창 바로가기 Android 설정 > 블루투스 선택 시 실행되는 화면은 아래 소스로 호출 가능하다. Intent intentOpenBluetoothSettings = new Intent();intentOpenBluetoothSettings.setAction(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS);startActivityForResult(intentOpenBluetoothSettings, REQUEST_SETTING_BLUETOOTH); 더보기
Android 공유하기 (ACTION_SEND) 1. 안드로이드에서 제공하는 기본 공유하기 소스 활용 만들어진 공유하기 UI를 보면 스마트폰에 있는 공유 할 수 있는 플랫폼이 갖춰진 앱 이라면 모두 띄워지게 됩니다. 스크린 샷 제공 Intent intent = new Intent(android.content.Intent.ACTION_SEND);intent.setType("text/plain"); // Set default text message // 카톡, 이메일, MMS 다 이걸로 설정 가능 //String subject = "문자의 제목"; String text = "원하는 텍스트를 입력하세요"; //intent.putExtra(Intent.EXTRA_SUBJECT, subject); intent.putExtra(Intent.EXTRA_TEXT, .. 더보기
android NDK 64bit 호환 처리하기 Android NDK 64bit 호환 처리하기 - JNI를 사용하지 않는다면 호환에 문제가 없다. - JNI를 사용한 어플이라면 다시 빌드하여 배포해야 한다. 1. android-ndk-r10c 다운로드 다운로드 URL : https://developer.android.com/tools/sdk/ndk/index.html 2. Application.mk 설정 예1) NDK가 지원하는 아키텍처 전체 지원 APP_ABI := all 예2) arm & x86 계열만 지원 APP_ABI := armeabi armeabi-v7a arm64-v8a x86 x86_64 3. 빌드하여 마켓에 다시 올린다... arm & x86 계열만 지원하게 빌드된 예시 이미지 더보기
안드로이드 WebView에서 HTML5 Video Full Screen 지원 안드로이드 WebView에서 HTML5 Video를 재생할 경우 "전체창으로 보기"를 사용할 수 있다. 그런데 자동적으로 사용할 수 있는 것이 아니라 관련된 처리를 직접 해주어야 한다.필요한 처리는 아래와 같다.WebView에 WebChromeClient를 설정해 주어야 한다. 그렇지 않으면 4.0 이후에서 NullPointerException이 발생한다.WebChromeClient를 설정하더라도 [onShowCustomView()](https://developer.android.com/reference/android/webkit/WebChromeClient.html#onShowCustomView%28android.view.View, android.webkit.WebChromeClient.CustomVi.. 더보기