Skip to content

Instantly share code, notes, and snippets.

@ryokosuge
Last active August 29, 2015 14:05
Show Gist options
  • Save ryokosuge/170291ca58505d424897 to your computer and use it in GitHub Desktop.
Save ryokosuge/170291ca58505d424897 to your computer and use it in GitHub Desktop.
【Android】Androidのアプリ間で情報を共有する方法 rel : http://blog.ryochin.xyz/archives/41
public String getShareData(Context context, String key, String addPackageName, String defaultValue) {
String shareData = defaultValue;
// 端末にインストールされている情報を取得
List<ApplicationInfo> appInfo = context.getPackageManager().getInstalledApplications(0);
// Iteratorクラス
Iterator<ApplicationInfo> iterator = appInfo.iterator();
// アプリ情報がある限りループ
while(iterator.hasNext()){
// アプリ情報
ApplicationInfo info = iterator.next();
try {
// アプリのコンテキストの生成
Context c = context.createPackageContext(info.packageName, 0);
// 上記のコンテキストからSharedPreferencesを生成
SharedPreferences sp = c.getSharedPreferences(info.packageName + addPackageName, Context.MODE_WORLD_READABLE);
// KEYの値を取得
shareData = sp.getString(key, defaultValue);
// DEFAULT_VALUEと違う値が習得できたらループを抜ける
if (!shareData.equals(defaultValue)){
break;
}
} catch (NameNotFoundException e) {
}
}
return shareData;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment