AndroidManifest에 선언한 메타데이터(meta-data) 가져오기

by 조쉬 posted Jun 10, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
* GoogleGcm 이나 Kakaotalk 로그인 연동을 해보면 아래처럼 AndroidManifest.xml 파일에 meta-data 태그를 추가하라고 한다.

 <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        <meta-data
            android:name="com.kakao.sdk.AppKey"
            android:value="@string/kakao_app_key" />


그렇다면 <application> 태그안에 선언한 <meta-data>의 정보는 어떻게 가져오는지 궁금하여 포스팅하였습니다.

try {
        ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
        if (ai.metaData != null) {
           int metaData = ai.metaData.getInt("com.google.android.gms.version");
           Log.e("metaData",metaData+"");
        }
 } catch (PackageManager.NameNotFoundException e) {
            // if we can't find it in the manifest, just return null
 }




* value 형식이 int 라면 getInt 메소드를 사용하고, String 이라면 getString을 사용하면 됩니다. 

 


- meta-data 속성

 속성명

 내용

 android:name

 아이템의 이름을 설정한다. 'com.example.project.activity.fred'와 같이 자바 스타일의 명명 규칙을 사용해야 한다

 android:resource

 리소스의 레퍼런스다. ID는 Bundle.getInt() 메서드를 사용해 meta-data Bundle로부터 얻을 수 있다

 android:value

 아이템에 할당된 값이다. 할당할 수 있는 데이터 타입과 값을 얻기 위해 사용하는 메서드는 다음과 같다

  • 문자열 값 : getString()
  • 정수 값 : getInt()
  • #rgb, #argb 형식의 컬러 값 : getString()
  • 부동 소수점 값 : getFloat()