2011-01-24 28 views
8

getSharedPreferences (String, int) için API'lerin açıklamasını incelediğimde, Second özniteliği erişilebilirlik modunu tanımlar ve varsayılan izin için MODE_WORLD_READABLE ve MODE_WORLD_WRITEABLE varsayılan olarak 0 veya MODE_PRIVATE alabilir.SharedPreferences, farklı Android uygulamaları arasında paylaşılabilir mi?

Ama API açıklamasında bu küçük not vardır:

Not: Bu sınıf (android.content.SharedPreferences) birden fazla boyunca süreçlerini kullanımını desteklemez. Bu daha sonra eklenecektir. Mark L. Murphy kitapta Üstelik

"başlayan Android 2" diye söz:

(Sonunda, tercihler zaman ait itibariyle desteklenmemektedir uygulamalar arasında paylaşılabilir ancak olabilir bu yazı)

Çok kafam karıştı! Bu, getSharedPrefrences'in MODE_WORLD_READABLE ve MODE_WORLD_WRITEABLE'ının en son API düzeyinde YETKİLİ DEĞİLDİR?

Teşekkürler! Migan

cevap

7

Kitap referansım bu yoruma dayanmaktadır. Ayrıca, MODE_WORLD_READABLE veya (daha kötüsü) MODE_WORLD_WRITEABLE herhangi bir dosya oluşturmak kötü bir fikirdir. Güvenlik umudunu kaybedersin. İki uygulamalar arasında veri paylaşmak isterseniz

gibi, çözümlerin sayısız vardır: AIDL tarafından maruz bir API ile

  • hizmet
  • startService() yoluyla gönderilen komutlar ile maruz bir API ile
  • hizmet ve yanıtları bir Messenger veya createPendingResult()PendingIntent falan
  • içerik sağlayıcı
  • yayın yoluyla gönderilen Intents

Tüm bunlar, entegrasyon izinlerini tanımlamanıza ve erişimin ayrıntı düzeyini kontrol etmenize izin verir.

+0

Süper eksiksiz cevap için teşekkürler! J2ME'den beri kafam karışmıştı, bu yüzden hiçbir güvenlik yok ve tavsiye edilmiyor olsa da, RecordStores yetki modunu AUTHMODE_ANY'ye ayarlayarak farklı uygulamalar arasında kolayca paylaşılabilir. Bu yüzden Android'in Prefrences'inin MODE_WORLD_READABLE ve MODE_WORLD_WRITEABLE özelliğini desteklememesine neden oldum. – Migan

İlgili konular