public static String getDeviceUUID(final Context context) { // preference에서 저장된 것이 있는지 확인해봄 final SharedPreferences prefs = context.getSharedPreferences("UUIDTEST", MODE_PRIVATE); final String id = prefs.getString("UUID", null); UUID uuid = null; if (id != null) { uuid = UUID.fromString(id); } else { final String androidId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure..
안드로이드 각 디바이스별 GL/EGL extensions 목록은 다음 사이트에 가면 얻을 수 있다. 넥서스5에 관한 것은 아래의 링크와 같다. http://delphigl.de/glcapsviewer/gles_generatereport.php?reportID=124 EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_image EGL_KHR_image_base EGL_KHR_lock_surface EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_fence_sync EGL_KHR_create_context E..
EGL10 egl = (EGL10) EGLContext.getEGL(); EGLDisplay display = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY); int[] version = new int[2]; egl.eglInitialize(display, version); Log.d(TAG, "EGL vendor: " + egl.eglQueryString(display, EGL10.EGL_VENDOR)); Log.d(TAG, "EGL version: " + egl.eglQueryString(display, EGL10.EGL_VERSION)); Log.d(TAG, "EGL extensions: " + egl.eglQueryString(display, EGL10.EGL_E..
//처음에 UUID를 KeyChain에서 불러오는데 nil이라면 UUID를 생성해서 KeyChain에 저장한다. //저장 후에 다시 함수를 호출 하면 저장된 값을 리턴한다. NSString* getUUID() { // initialize keychaing item for saving UUID. KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"UUID" accessGroup:nil]; NSString *uuid = [wrapper objectForKey:(__bridge id)(kSecAttrAccount)]; if( uuid == nil || uuid.length == 0) { // if there is no..
장점 1. 소스 디컴파일러가 내장되어 있어서 소스가 없는것도 소스를 쉽게 볼수 있고, 안드로이드 소스도 바로 연결이 된다. 2. gradle 빌드 시스템으로 라이브러리의 최신버전을 repository에서 받아온다. 3. 탭간 이동이 비쥬얼 스튜디오와 동일하게 ctrl + tab이다. 이게 가장 편하다. 4. dracular 테마가 있어서 좋다. 5. 프로젝트 관리가 이클립스의 workspace가 아니라서 git에 넣었을 경우에 비쥬얼 스튜디오 처럼 프로젝트를 로딩하면 모든 셋팅이 같이 로딩된다. 6. UI 에디터도 쓸만하게 프리뷰를 할수 있다.단점 1. gradle이 어렵다. 2. gradle이 느리다.
public void printHashKey() { try { PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); String hashKey = new String(Base64.encode(md.digest(), 0)); Log.i(TAG, "printHashKey() Hash Key: " + hashKey); } } catch (No..
플레이스토어 앱설치시 '콘텐츠 제공자의 권한이 중복됩니다' 및 -505 에러가 난 유저에게는 다음과 같이 안내하면 된다. 1. 설정 > 앱(LG) 또는 애플리케이션 관리자(삼성) > 전체로 이동 2. Google Play 스토어 > 캐쉬 삭제 > 데이터 삭제 3. Google Play 서비스 > 캐쉬 삭제 > 데이터 삭제 4. 설정 > 계정 > Google > 기존에 사용하는 구글 계정 삭제 5. 디바이스 재부팅 6. 설정 > 계정 > Google > 다시 기존에 사용하는 구글 계정 추가 7. Play 스토어에서 앱 다시 다운로드
구글 플레이스토어에서 앱을 설치시 '콘텐츠 제공자의 권한이 중복됩니다' 에러 메세지가 나타날 경우가 있다. 이 문제는 앱의 Facebook SDK를 버전업 하였을때 provider의 이름 설정과 export 설정이 잘못되어서 다른 앱과 충돌할때 나타난다. 아래의 exported를 반드시 false로 해야지 앱자체의 provider로만 동작한다. 왜냐면 exported를 true로 하면 provider name이 다른 Facebook SDK를 사용한 앱의 provider와 같기 때문이다.
- Total
- Today
- Yesterday