2015-08-25 5 views
1

У меня есть два проекта с одной и той же сигнатурой и одинаковым идентификатором пользователя. Я могу получить доступ к общим предпочтениям в двух приложениях, если я явно укажу два приложения для запуска в одном и том же процессе, однако, если я не укажу процесс в манифесте двух приложений, я не могу получить доступ к данным через приложения. Как я могу получить доступ к общим предпочтениям в двух приложениях, если они запускаются на отдельных процессах?Доступ к общим настройкам в двух приложениях для Android

+3

Благодарим за информацию. У вас есть вопрос? – dotvav

+0

@dotvav Отредактировал вопрос – topGun1028

ответ

0

Хорошо! используя этот код в приложении 1 (с именем пакета «com.sharedpref1») для хранения данных с помощью общих настроек.

SharedPreferences prefs = getSharedPreferences("demopref", 
       Context.MODE_WORLD_READABLE); 
     SharedPreferences.Editor editor = prefs.edit(); 
     editor.putString("demostring", strShareValue); 
     editor.commit(); 

И с помощью этого кода в Application 2, чтобы получить данные из общих предпочтений в Application 1. Мы можем получить его, потому что мы используем MODE_WORLD_READABLE в приложении 1:

try { 
      con = createPackageContext("com.sharedpref1", 0); 
      SharedPreferences pref = con.getSharedPreferences(
        "demopref", Context.MODE_PRIVATE); 
      String data = pref.getString("demostring", "No Value"); 
      displaySharedValue.setText(data); 

     } catch (NameNotFoundException e) { 
      Log.e("Not data shared", e.toString()); 
     } 

Больше информации, пожалуйста, посетите этот URL: http://androiddhamu.blogspot.in/2012/03/share-data-across-application-in.html

От developer.android
Эта константа осуждался в уровне API 17. Создание мира считываемых файлов очень d гнев и, вероятно, вызовет проблемы безопасности в приложениях. Это сильно обескураживает; вместо этого приложения должны использовать более формальный механизм взаимодействия, например ContentProvider, BroadcastReceiver и Service. Нет никаких гарантий того, что этот режим доступа останется в файле, например, когда он выполняет резервное копирование и восстановление. Режим создания файла: разрешить всем другим приложениям доступ к чтению к созданному файлу.

+1

MODE_WORLD_READABLE теперь устарел. – topGun1028

1

Я думаю, что его мудрые два приложения хранят данные из общих настроек в базу данных sqlite. Затем вы используете contentProvider для совместного использования данных в двух приложениях.

Например, такие приложения, как facebook, используют контакты, хранящиеся в телефоне, с помощью поставщика содержимого приложения контактов.

Подробнее о поставщиках содержимого http://developer.android.com/guide/topics/providers/content-providers.html

Смежные вопросы