قالب و افزونه وردپرس

اشتراک داده ها بین دو برنامه Android با استفاده از shared preferences

منتشرشده توسط حامد قنبری در تاریخ

shared preferences  راهی برای ذخیره جفتهای ساده کلید و مقادیر برای یک برنامه است که در آن نگهداری داده ها در طول شروع و متوقف کردن برنامه همچنان ادامه می یابد. بعبارت دیگر کاربر با ذخیره اطلاعات در برنامه بصورت خصوصی یا عمومی تا زمانی که خود اپلیکیشن را پاک نکرده باشد اطلاعات ذخیره شده در آن قابل بازیابی خواهد بود. شاید برای شما این سوال پیش آمده باشد که وقتی از shared preferences  استفاده می کنیم ایا می توانیم با استفاده از flag  های  موجود همانند MODE_WORLD_READABLE  یا MODE_WORLD_WRITABLE ، برنامه ای بنویسیم  که که برای اپلیکیشن های  دیگر نیز قابل دسترسی باشد . اغلب ما از  shared preferences به منظور ذخیره بعضی از داده ها به صورت محلی استفاده می کردیم. با این حال، shared preferences از چنین قابلیتی نیز برخوردار است تا  سایر برنامه ها  نیز به آن دسترسی پیدا کنند.

به عنوان مثال اگر شما بعنوان برنامه نویس قصد دارید که کاربرانی که از چند اپلیکیشن شما در گوشی اندروید خود استفاده می کنند به منظور ورود به ناحیه کاربری خود مجبور نباشند که در هریک از اپلیکیشن ها با نوع بسته های متفاوت اطلاعات کاربری خود را که در همه برنامه ها یکسان است را وارد کنند می توانید از چنین امکانی استفاده کنید.

نوشتن چنین برنامه ای که توسط برنامه های دیگر قابل خواندن است  بسیار ساده است و تنها تفاوت آنها در flag آنهاست  . در واقع به هنگام برنامه نویسی shared preferences  می بایست flag  آنها را از حالت private  یا خصوصی به حالت readable  یا قابل خواندن توسط برنامه های دیگر تغییر دهیم.

در این مثال، من قصد دارم نشان دهم چگونه می توانیم داده ها را بین دو برنامه Android با استفاده از shared preferences به اشتراک بگذاریم.
بدین منظور   از دو برنامه Android  استفاده می کنیم.  نام یکی از پکیج ها “Datawriter”  و دیگری “Datareader” می گذاریم.
از بسته “Datawriter” برای به روز رسانی داده های مشترک استفاده می کنیم.

final   SharedPreferences prefs = getApplicationContext().
   getSharedPreferences("sharedprefone", Context.MODE_WORLD_READABLE);
   Editor edit = prefs.edit();
   edit.putString("data","your data");
   edit.commit();

و در بسته Datareader برای خواندن اطلاعات ذخیره شده در پکیج Datawriter از کدهای زیر استفاده می کنیم.

Context myContext = null;
try {
    myContext = getApplicationContext().createPackageContext
            ("psrd.ir.example.Datawriter ", Context.MODE_WORLD_WRITEABLE);
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
}
SharedPreferences testPrefs = myContext.getSharedPreferences
        ("sharedprefone", Context.MODE_WORLD_READABLE);
String accessdata = testPrefs.getString("data", "not avalible");

موفق و پیروز باشید



0 دیدگاه

دیدگاهتان را بنویسید

Avatar placeholder

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *