In this tutorial I'm going to illustrate how we can share data between two Android applications using Shared Preference.
To implement this I used two Android applications. One is "Datawriter" and the other one is "Datareader".
"Datawriter" is to update shared data. Its' package name is com.writer.data class name is DataWriterActivity . Here is the code for DataWriterActivity class.
package
com.writer.data;
import
android.app.Activity;
import
android.content.Context;
import
android.content.SharedPreferences;
import
android.os.Bundle;
public
class
DataWriterActivity
extends
Activity {
/** Called when the activity is first created. */
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
dataWriter();
}
public
void
dataWriter(){
String strShareValue =
"Hello! this is shared data"
;
SharedPreferences prefs = getSharedPreferences(
"demopref"
,Context.MODE_WORLD_READABLE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(
"demostring"
, strShareValue);
editor.commit();
}
}
dataWriter method will write the string Hello! this is shared data to a shared memory.
Next application is to read shared data. The application name is Datareader and its' package name is com.datareader class name is DataReaderActivity. Here is the code for DataReaderActivity class.
package com.datareader;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class DataReaderActivity extends Activity {
String dataShared;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.main);
dataRead();
TextView tv = (TextView)findViewById(R.id.textView1);
tv.setText(dataShared);
}
public void dataRead(){
Context con;
try {
con = createPackageContext( "com.writer.data" , 0 );
SharedPreferences pref = con.getSharedPreferences( "demopref" , Context.MODE_PRIVATE);
dataShared = pref.getString( "demostring" , "No Value" );
}
catch (NameNotFoundException e) {
Log.e( "Not data shared" , e.toString());
}
}
}
|
"com.writer.data" in the highlighted line is the package name of the first application which we used to share data.
No comments:
Post a Comment