Friday, 7 August 2015

Store values using Shared Preference

In Android , Shared preference can be used to store values in a key-value pair. We can store values in a private mode such that, it is not accessible to any other apps.

  • Create the shared preference in private mode.
  • Initialize the editor mode.
  • Set values to your key.
  • Finally commit your values.
  • Get the saved values using the key.
  • Set default value to return if key value doesn't exist.

To set values to Shared Preference:

SharedPreferences pref = getSharedPreferences("sample"0)
SharedPreferences.Editor editor = mVoice.edit();
editor.putString("key1", "value1");
editor.putString("key2", "value2");
editor.commit();
To get values from Shared Preference:
SharedPreferences pref = getSharedPreferences("sample", 0);
String start = pref .getString("key1", "Not set");
String stop = pref .getString("key2", "Not set");

Thursday, 6 August 2015

SMS Broadcast Receiver

In Android we can receive the incoming messages using broadcast receiver service. Using this we are able to read the new incoming messages even if the phone is in sleep.


SMS service:

public class SmsService extends BroadcastReceiver {
    public static final String SMS_BUNDLE = "pdus";
    public SmsService () {
    }

    @Override    public void onReceive(Context context, Intent intent) {

        Bundle intentExtras = intent.getExtras();
        String smsBody = "";  
        if (intentExtras != null) {
            Object[] sms = (Object[]) intentExtras.get(SMS_BUNDLE); 
            String smsMessageStr = ""; 
            for (int i = 0; i < sms.length; ++i) {
                SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) sms[i]);
                smsBody = smsMessage.getMessageBody().toString();
                String address = smsMessage.getOriginatingAddress();
                smsMessageStr += "SMS From: " + address + "\n"; 
               smsMessageStr += smsBody + "\n";            }
        }
        Toast.makeText(context, smsMessageStr, Toast.LENGTH_SHORT).show();
        
    }
}


We need to add permissions in AndroidManifest.xml


<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />