APK에 데이터 파일 넣어 사용하기

안드로이드 설치 패키지인 APK 파일에는 이미지, 문자열 등과 같은 데이터뿐만 아니라 임이의 데이터 파일도 넣어 사용할 수 있습니다. 이러한 임이의 데이터 파일은 res 폴더의 서브 폴더인 raw를 직접 만들어 넣어주면 됩니다.

이러한 방식으로 데이터 파일을 저장해 두면 다음의 코드를 통해 해당 데이터 파일에 접근할 수 있는 InputStream 객체를 얻을 수 있습니다.

InputStream database_db = 
    map.getContext().getResources().openRawResource(R.raw.database_db);

이제 이 InputStream 객체를 통해 원하는 디렉토리에 해당 데이터 파일을 복사하고 사용할 수 있습니다. 아래의 코드는 InputStream 객체에 담겨진 데이터를 원하는 파일명으로 저장해 주는 함수입니다.

private boolean copy(InputStream in, String fileName) {
    try {
        OutputStream os = new FileOutputStream(fileName);
        byte[] buffer = new byte[1024];
        int bytesRead;
        while((bytesRead = in.read(buffer)) !=-1) {
            os.write(buffer, 0, bytesRead);
        }
	        
        os.flush();
        os.close();
    } catch (IOException e) {
        return false;
    }

    return true;
}

Geocoder-Xr의 OpenAPI Key 발급

좌표를 주소로 변환해 주는 툴인 Geocoder-Xr은 다음, 네이버, 구글의 좌표변환 API를 사용합니다. 간혹 Geocoder-Xr에서 변환이 않된다는 분들이 계셨고, 대부분의 이유는 OpenAPI Key 문제입니다. 기본적으로 Geocoder-Xr에 등록된 Key에 대한 사용량 초과로 인해 발생하는 것으로, 이 문제를 해결하기 위해서는 직접 사용자 개인의 OpenAPI Key를 발급받아 등록을 하시면 됩니다. Geocoder-Xr에서 이 OpenAPI 키를 등록하는 방법은 아래 화면을 참고하시기 바랍니다.

사용자 삽입 이미지
보시는 것처럼 먼저 화면 좌하단의 OpenAPI Key 관리 버튼을 클릭해 표시되는 대화상자에서 자신의 OpenAPI Key를 입력하시면 됩니다. 그럼 이 대화상에서 입력할 수 있는 OpenAPI Key를 발급받기 위해서 다음과 네이버에 대해 간단히 설명을 드리겠습니다.

먼저 기본적으로 다음과 네이버 모두 자신의 ID로 로그인이 되어 있다는 가정 하에 설명합니다. 먼저 다음(Daum)의 경우는 다음 화면을 통해 OpenAPI Key를 발급받을 수 있습니다. 화면을 클릭하면 전체 이미지를 볼 수 있으므로 정확한 URL을 볼 수 있습니다.

사용자 삽입 이미지
그리고 네이버에서 OpenAPI Key를 발급받기 위해서는 아래의 화면을 참고하시기 바랍니다. 화면을 클릭하면 큰 화면으로 표시되어 정확한 URL을 볼 수 있습니다.

사용자 삽입 이미지