sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

PackageItemInfo.metaData

GoogleMaps V2は AndroidManifest.xml内の に<meda-data>としてAPI Keyを設定する必要があるが、コードでdebugとreleaseのKeyを切り替えられないかという某MLの投稿を発端に調査してみた。

PackageManager.getApplicationInfo(PackageManager.GET_META_DATA)で取得したAppclicationInfoのインスタンスでは、BundleクラスのmetaDataが格納されている。

PackageManager mgr = ;
ApplicationInfo info = getPackageManager().getApplicationInfo("hoge.package.name", PackageManager.GET_META_DATA);
Bundle metadata = info.metaData;

これを使ってうまく切り替えられないかと思い、Applicationの派生クラスを利用したアプリを用意し、派生クラスのonCreate内でmetaDataのAPI Keyを操作してみたが、GoogleMaps v2には効果がない模様。 PackageManagerで取得できるmetaDataがコピーなのか、Maps用のAPI Keyを読み込むタイミングがもっと前なのかは調べていないので不明。

とはいえ、metaDataでなにかすることもあるかもしれないので、メモ代わりに記録しておく。