ContentProviderのauthorityの取得方法
ContentProviderのauthorityの取得方法
ContentProviderを使用する場合に、authorityはmanifestに書いてあるauthorityをコピペで
public static final String AUTHORITY = "com.hogehoge.jp";
定数として定義するのが一般的なやり方だと思います。
AndroidManifest.xmlのauthorityはContextとContentProviderの実装クラスさえ分かれば、コードからでも取ること可能です。
/** * Get ContentProvider authority from AndroidManifest.xml. * * @param context context * @param providerClass providerClass * @return authority */ public static String getAuthority(Context context, Class< ? extends ContentProvider> providerClass){ PackageManager manager = context.getApplicationContext().getPackageManager(); try { ProviderInfo providerInfo = manager.getProviderInfo( new ComponentName(context, providerClass), PackageManager.GET_META_DATA); return providerInfo.authority; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return ""; }
他にもAndroidManifest.xmlの内容はPackageManagerから色々と取得出来ます。
■参考
http://developer.android.com/reference/android/content/pm/PackageManager.html
※本記事は以前qiitaに投稿したものと同様の内容です