Aynı kısıtlamayı bana soran bir yayın bulamadım.İçerik sağlayıcısına erişimi kısıtlayın
Bir içerik sağlayıcısını (ana uygulama olarak adlandırın) diğer uygulamalara (istemci uygulamaları olarak adlandırın) sağlayan bir uygulamam var. İstemci uygulamalarından yalnızca insert ve belki sorgu yöntemlerini desteklemek için içerik sağlayıcısına erişimi kısıtlamak istiyorum.
istemiyorum Ne: ana hedefi istemci uygulamaları için bir veritabanı sağlamaktır çünkü
- içerik sağlayıcı özel yapın.
- Erişimi, istemci uygulamalarının imzalarıyla kısıtlayın, çünkü herkes ana uygulama platformunu kullanan bir istemci uygulaması yazabilmelidir.
Gördüğüm en belirgin çözüm, biri ana uygulamaya özel tam erişimi olan ve biri kısıtlı olan iki içerik sağlayıcısı yazmaktır. Ama bence bu kesinlikle uygun bir yol değil.
Bu Google groups post uyarınca, arama sağlayıcısı ana uygulamadan gelip gelmediğini algılamak için içerik sağlayıcı çağrılarında Binder.getCallingUid()
kullanmayı düşünüyorum. Bu nedenle, çağrı ana uygulamadan gelmiyorsa numaralı güncelleştirme ve yöntemlerinde hiçbir şey yapamam.
Karşılaştırmak için ana uygulama UID nasıl alabilirim? Ve eğer mümkünse, bu çözüm güvenli midir?
Tavsiyeniz için teşekkürler.
Doğru bir şekilde anlıyorsam, içerik sağlayıcı bileşenini içeren uygulama, yazma erişimi olan tek kişi olmalıdır. Bu nedenle, İçerik Sağlayıcı arayüzünden geçmeden bu işlevselliği kullanamaz mı? Bu durumda İçerik sağlayıcı sadece sorgu arayüzünü destekleyecektir. – Sameer
Maalesef, istemci uygulamalarının ihtiyaç duyduğu ana erişim ekleme. Bu yüzden yazma erişimine de sahip olmaları gerekiyor. Ancak haklısınız, ana uygulama içerik sağlayıcısını kullanmak için gerekli değildir, ancak çok fazla karmaşıklık ve süreklilik artacaktır. Yine aynı noktada – FabiF
.Ana uygulama, İçerik Sağlayıcı arayüzünü kullanmadan doğrudan ekleyebilir, güncelleyebilir ve siler. İçerik Sağlayıcı sadece ekleme ve sorgulama arayüzü sağlar. – Sameer