Soru İki uygulama arasında veri paylaşımı


Kısa bir süre önce, "İki yüklü uygulama veya apk arasındaki verileri nasıl paylaşabiliyorsunuz?"

Bu soru için hiç bir cevabım yoktu. Biri bunu yapmanın bir yolunu belirlemede bana yardımcı olabilir mi?


32
2018-04-21 14:08


Menşei




Cevaplar:


İçerik sağlayıcılar uygulamalar arasında veri paylaşmak için iyi bir yaklaşımdır.


25
2018-04-21 14:12



Bağlantı için teşekkürler. Sorduğum için üzgünüm, ancak verileri nasıl paylaşacağımız konusunda daha spesifik olabilirsiniz. Herhangi bir örnek harika yardım olacak - Rahul Varma
Bu güzel ve basit bir örnekTüm uygulamaların kullanabileceği bir sistem veri kaynağı kullanarak. Örnek indir - Brad Parks
@BradParks bağlantısı öldü - Ranjith Kumar
@RanjithKumar - İyi yakalama! Denemedim, ama bu farklı bir kaynaktan aynı örnek gibi görünüyor: genel bakış ve indir:ayna 1 ve ayna 2 - Brad Parks
@BradParks hızlı cevap için teşekkürler - Ranjith Kumar


Uygulama 1'den veri gönder (örneğin: Uygulama 1 paket adı "com.sharedpref1").

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

Uygulama 2'deki verileri alın (Uygulama 1'de Paylaşılan Tercihler'den veri almak için). 

    try {
            con = createPackageContext("com.sharedpref1", 0);//first app package name is "com.sharedpref1"
            SharedPreferences pref = con.getSharedPreferences(
                        "demopref", Context.MODE_PRIVATE);
            String your_data = pref.getString("demostring", "No Value");
        } 
    catch (NameNotFoundException e) {
                Log.e("Not data shared", e.toString());
         }

Her iki uygulama manifest dosyasında aynı paylaşılan kullanıcı kimliğini ve etiketini ekleyin.

 android:sharedUserId="any string" 
 android:sharedUserLabel="@string/any_string"

ikisi de aynı ... ve paylaşılan kullanıcı etiketi string.xml'den olmalıdır

bu örnek gibi.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.xxxx"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="any string" 
android:sharedUserLabel="@string/any_string">

20
2018-03-20 15:31



Uygulamaları aynı anahtarla imzalamak zorunda değil misiniz? - John
Çok güzel açıkladı. İşe yarıyor. Sağol kanka :-) - Hanish Sharma
@Ranjith Kumar "No Value" alıyorum anahtar değerinden geçmek için hangi sebep - Ramprasathselvam
@Ramprasathselvam tüm adımlarımı takip ediyor musunuz? lütfen adım adım okuyun ve uygulayın. kesinlikle işe yarıyor - Ranjith Kumar
Mükemmel çalıştı! - Kira


İçerik sağlayıcı yanıtı gibi Android'e özgü yöntemleri aradıklarından şüpheleniyorum.

Diğer alternatifler ... Android'e Özgü - Uzaktan hizmetler Genel - TCP / IP bağlantıları Genel - SD kartta bir yere yazma

Belirli bir yöntem hakkında daha fazla bilgi sahibi olmak ister misiniz?

Ayrıca bugün bu röportaj için bu soruyu çalarak :)


4
2018-04-21 14:35





Uygulamalar arasında veri paylaşmak istiyorsanız, aynı anahtarla oturum açtığınızdan emin olun:

İzinlerle kod / veri paylaşımı - Android sistemi   imza tabanlı izinlerin uygulanması, böylece bir uygulama   işlevsellik ile imzalanan başka bir uygulamaya   belirtilen sertifika Aynı anda birden fazla uygulama imzalayarak   Sertifika ve imza tabanlı izin kontrolleri kullanarak,   uygulamalar kod ve verileri güvenli bir şekilde paylaşabilir.

Bu alıntı: imzalama hakkında android geliştirici sayfası

Eğer az miktarda veri varsa, bunu bir niyetle gönderebilirsiniz.


4
2018-03-09 02:40



Bir uygulamadan diğerine nasıl veri getirileceğini veya alınabileceğini işaret edebilir misiniz? Bu bağlantı, imzalama hakkında daha fazla. - Rafael Sanches


İçerik sağlayıcı, bir uygulamanın verilerini başka bir uygulama ile paylaşmak istemesi durumunda kullanılması gereken bir android bileşenidir.

Not: Bir uygulama tarafından oluşturulan Dosyalar, SqliteDatabases, Sharedpreference dosyaları yalnızca bu uygulamaya özeldir. Diğer uygulama doğrudan erişemez. Programcı, içerik sağlayıcıyı kullanarak veritabanını ortaya çıkarırsa, o zaman sadece bu verilere diğer uygulamalardan erişilebilir. İçerik sağlayıcıyla iletişim kurmak için içerik çözümleyici kullanın.


0
2017-12-04 07:46