Notice
Recent Posts
Recent Comments
Link
투케이2K
924. (Android/Java) [유틸 파일] getJsonAppUseInfo : App 앱 사용 정보 포맷 수행 - 앱 로드 수행 시 정보 저장 본문
Android
924. (Android/Java) [유틸 파일] getJsonAppUseInfo : App 앱 사용 정보 포맷 수행 - 앱 로드 수행 시 정보 저장
투케이2K 2024. 12. 27. 18:30[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Java / Kotlin
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Java / Kotlin
- 개발 툴 : AndroidStudio
- 기술 구분 : 유틸 파일 / App Info / Device Info
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] : [Format] : getJsonAppUseInfo : App 앱 사용 정보 포맷 수행
// -----------------------------------------------------------------------------------------
public static String getJsonAppInfo(Context mContext, String uniqueValue){
/**
* // -----------------------------------------
* [getJsonAppInfo 메소드 설명]
* // -----------------------------------------
* 1. App 앱 사용 정보 포맷 수행
* // -----------------------------------------
* 2. 호출 방법 : C_Format.getJsonAppInfo(A_Intro.this, "Twok");
* // -----------------------------------------
* 3. 리턴 데이터 : App 정보 json 포맷 String 데이터
*
* {
* "uniqueValue": "Twok",
* "appRuningDate": "2024-12-27 15:00:37",
* "appPackageName": "com.example.javaproject.staging",
* "appVersionCode": "1",
* "appVersionName": "1.0.1-STAGING",
* "appMinSdkVersion": "21",
* "appCompileSdkVersion": "33",
* "appFistInstall": "2024-12-04 17:16:09",
* "appUpdateInstall": "2024-12-26 11:00:37",
* "devicePlatform": "Android",
* "deviceOsVersion": "14",
* "deviceModelName": "[samsung] SM-S906N",
* "deviceUniqueId": "721234D486567867",
* "deviceRamSize": "7.8",
* "deviceRamUsed": "45%",
* "deviceInnerStorageSize": "223.5 GB",
* "deviceWakeupTime": "0 (H)"
* }
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
String returnData = "";
String M_LOG = "";
// [구분 처리 실시]
try {
if (mContext != null){
// [JSON 객체 선언]
JSONObject jsonObject = new JSONObject();
// [데이터 삽입 실시]
jsonObject.put("uniqueValue", String.valueOf(uniqueValue)); // TODO [특정 사용자 구분 유니크 값]
jsonObject.put("appRuningDate", String.valueOf(C_Util.getNowDateTime24())); // [앱 동작 시작 시간]
jsonObject.put("appPackageName", String.valueOf(C_App.getMobilePackageName(mContext))); // [패키지 명칭]
jsonObject.put("appVersionCode", String.valueOf(C_App.getMobileCode(mContext))); // [앱 버전 코드]
jsonObject.put("appVersionName", String.valueOf(C_App.getMobileVersion(mContext))); // [앱 버전 이름]
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
jsonObject.put("appMinSdkVersion", String.valueOf(C_App.getAppMinSdkVersion(mContext, C_App.getMobilePackageName(mContext)))); // [앱 Min Sdk 버전 확인]
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
jsonObject.put("appCompileSdkVersion", String.valueOf(C_App.getAppCompileSdkVersion(mContext, C_App.getMobilePackageName(mContext)))); // [앱 Compile Sdk 버전 확인]
}
jsonObject.put("appFistInstall", String.valueOf(C_App.appInstallFirstTime(mContext, C_App.getMobilePackageName(mContext)))); // [앱 최초 설치 일자]
jsonObject.put("appUpdateInstall", String.valueOf(C_App.appInstallUpdateTime(mContext, C_App.getMobilePackageName(mContext)))); // [앱 업데이트 설치 일자]
//jsonObject.put("appExitReason", String.valueOf(C_App.getAppExitReason(mContext, C_App.getMobilePackageName(mContext)))); // [최근 앱 종료 이유 확인]
jsonObject.put("devicePlatform", "Android"); // [기기 플랫폼 : 하드 코딩]
jsonObject.put("deviceOsVersion", String.valueOf(C_App.getDeviceOsVersion())); // [기기 Os 정보]
jsonObject.put("deviceModelName", String.valueOf(C_App.getDeviceModelName())); // [기기 모델 명칭]
jsonObject.put("deviceUniqueId", String.valueOf(C_App.getAndroidID(mContext))); // [기기 고유 값]
jsonObject.put("deviceRamSize", String.valueOf(C_App.getRamMemoryTotal(mContext))); // [기기 Ram 크기]
jsonObject.put("deviceRamUsed", String.valueOf(C_App.getRamMemoryUsed(mContext))); // [기기 Ram 사용량]
jsonObject.put("deviceInnerStorageSize", String.valueOf(C_App.getInnerStorageSize(mContext))); // [기기 내장 저장 공간 크기 확인]
jsonObject.put("deviceWakeupTime", String.valueOf(C_App.getPhoneUsedTime(mContext))); // [휴대폰 사용 시간, 휴대폰 가동 시간 확인]
// [리턴 변수에 데이터 삽입]
returnData = jsonObject.toString();
M_LOG = "[Success] :: Get App Use Info";
}
else {
M_LOG = "[Error] :: mContext Is Null";
}
}
catch (Exception e){
S_Log._printStackTrace_(null, S_FinalData.LOG_BUG_STATE, null, e);
M_LOG = "[Exception] :: " + String.valueOf(e.getMessage());
}
// [로그 출력 실시]
//*
// ===============================================================
S_Log._D_("App 앱 사용 정보 포맷 수행", new String[] {
"M_LOG :: " + String.valueOf(M_LOG),
"RETURN :: " + String.valueOf(returnData)
});
// ===============================================================
// */
// [리턴 데이터 반환]
return returnData;
}
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[결과 출력]
// --------------------------------------------------------------------------------------
W///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.A_Intro.onCreate(A_Intro.java:314)]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: A_Intro :: onCreate :: 앱 사용 정보 확인]
I/: ----------------------------------------------------
I/: [LOG :: {
"nameValuePairs": {
"uniqueValue": "Twok",
"appRuningDate": "2024-12-27 15:00:37",
"appPackageName": "com.example.javaproject.staging",
"appVersionCode": "1",
"appVersionName": "1.0.1-STAGING",
"appMinSdkVersion": "21",
"appCompileSdkVersion": "33",
"appFistInstall": "2024-12-04 17:16:09",
"appUpdateInstall": "2024-12-26 11:00:37",
"devicePlatform": "Android",
"deviceOsVersion": "14",
"deviceModelName": "[samsung] SM-S906N",
"deviceUniqueId": "721234D486567867",
"deviceRamSize": "7.8",
"deviceRamUsed": "45%",
"deviceInnerStorageSize": "223.5 GB",
"deviceWakeupTime": "0 (H)"
}
}]
W///===========//: ================================================
// --------------------------------------------------------------------------------------
반응형
'Android' 카테고리의 다른 글
Comments