my name is Suman. i can notify a incoming sms. the code is written
belowimport android.content.BroadcastReceiver;

import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.gsm.SmsMessage;
import android.util.Log;
import android.widget.Toast;


public class SMSReceiver1 extends BroadcastReceiver {
     /** TAG used for Debug-Logging */
     protected static final String LOG_TAG = "SMSReceiver";

     /** The Action fired by the Android-System when a SMS was
received.
      * We are using the Default Package-Visibility */
     private static final String ACTION =
"android.provider.Telephony.SMS_RECEIVED";

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

     Log.i(LOG_TAG, "[inside onReceive] ");

     if (intent.getAction().equals(ACTION)) {

           StringBuilder sb = new StringBuilder();
             Bundle bundle = intent.getExtras();

             if (bundle != null) {
                 Object[] pdusObj = (Object[]) bundle.get("pdus");
                 SmsMessage[] messages = new SmsMessage
[pdusObj.length];
                 for (int i = 0; i<pdusObj.length; i++) {
                         messages[i] = SmsMessage.createFromPdu ((byte
[]) pdusObj[i]);


                 }

                 Log.i(LOG_TAG, "[SMSApp Bundle] " + bundle.toString
());

                  // Feed the StringBuilder with all Messages found.
                   for (SmsMessage currentMessage : messages){
                         sb.append("Received compressed SMS\nFrom:
");
                         // Sender-Number
                         sb.append
(currentMessage.getDisplayOriginatingAddress());
                         String value2 =
currentMessage.getDisplayOriginatingAddress();
                        // String value4 = value2.toString();
                         sb.append("\n----Message----\n");
                         // Actual Message-Content
                         sb.append(currentMessage.getDisplayMessageBody
());
                         String value3 =
currentMessage.getDisplayMessageBody();
                         ContentValues contentValues = new
ContentValues();
                         contentValues.put
(android.provider.Telephony.Sms.BODY,
currentMessage.getDisplayMessageBody());

                         android.net.Uri uri
=context.getContentResolver().insert
(android.provider.Telephony.Sms.CONTENT_URI, contentValues);
                        // Intent myIntent = new Intent();
                                //myIntent.setClassName("com.android.sms14",
"com.android.sms14.SMSActivity1");
                                //myIntent.putExtra("com.android.HelloBye.heby",
"Hello Joe!"); // key/value pair, where key needs current package
prefix.
                                //myIntent.hasExtra("('niva',  '"+value2+"')");
                                //myIntent.hasExtra("('niva',  '"+value3+"')");
                                //myIntent.putExtra("niva", "Sengupta");// 
key/value
pair, where key needs current package prefix.
                                //startActivity(myIntent);
                         //ContentValues contentValues = new
ContentValues();
                       // contentValues.put
(android.provider.Telephony.Sms.BODY,
currentMessage.getDisplayMessageBody());

                         //Uri uri =context.getContentResolver().insert
(android.provider.Telephony.Sms.CONTENT_URI, contentValues);
                         //sb.append(uri);

                   }
              }
              // Logger Debug-Output
              Log.i(LOG_TAG, "[SMSApp] onReceiveIntent: " + sb);

              // Show the Notification containing the Message.
              Toast.makeText(context, sb.toString(),
Toast.LENGTH_LONG).show();

              // Consume this intent, that no other application will
notice it.
              this.abortBroadcast();

              // Start the Main-Activity

              Intent i = new Intent(context, SMSActivity1.class);

             i.setClassName("com.android.sms14",
"com.android.sms14.SMSActivity1");
                         i.putExtra("fname",  "suman999");

                         i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        context.startActivity(i);

         }
    }


}

main activity:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class SMSActivity1 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       // setContentView(R.layout.sms1);











        Log.v(SMSReceiver1.LOG_TAG,"inside SMS Activity");
    }
}
mainfest
<manifest xmlns:android="http://schemas.android.com/apk/res/android";
      package="com.android.sms14">
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <application android:icon="@drawable/icon">
        <!-- The Main Activity that gets started by the IntentReceiver
listed below -->
        <activity android:name=".SMSActivity1" android:label="@string/
app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category
android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".valueandroid1" android:label="@string/
app_name">

        </activity>
        <!-- This class will react on the SMS show a notification
                        and start the Main-App afterwards -->
        <receiver android:name=".SMSReceiver1">
            <intent-filter>
                <action
android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>
    </application>
</manifest>
Now, i have database also.
import java.util.ArrayList;

import android.app.ListActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.EditText;

public class queryandroid extends ListActivity {

     private final String MY_DATABASE_NAME = "myCoolDB_2";
     private final String MY_DATABASE_TABLE = "Users";

     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle icicle) {
          super.onCreate(icicle);

          EditText et = new EditText(this);
          et.setSelection(et.getText().length());
          /* Will hold the 'Output' we want to display at the end. */
          ArrayList<String> results = new ArrayList<String>();

          SQLiteDatabase myDB = null;
          try {
               /* Create the Database (no Errors if it already exists)
*/
                  myDB = this.openOrCreateDatabase(MY_DATABASE_NAME,
MODE_PRIVATE, null);

                  //myDB.execSQL("DROP TABLE "  + MY_DATABASE_TABLE )   ;

               /* Create a Table in the Database. */
               myDB.execSQL("CREATE TABLE IF NOT EXISTS "
                                   + MY_DATABASE_TABLE
                                   + " (MyKey INTEGER PRIMARY KEY
AUTOINCREMENT, MyName VARCHAR,"
                                   + " MyAge INT(3), MyDate DATE);");

               //create table t1 (t1key INTEGER  PRIMARY KEY,data
TEXT,num double,timeEnter DATE);
               // UPDATE exam SET timeEnter = DATETIME('NOW') WHERE
rowid = new.rowid;

               //myDB.execSQL("DELETE FROM "  +
MY_DATABASE_TABLE )   ;

               /* Add two DataSets to the Table. */
               myDB.execSQL("INSERT INTO "
                       + MY_DATABASE_TABLE
                       + " (MyName, MyAge)"
                       + " VALUES ('Nikhil Narayan', '27');");

               myDB.execSQL("INSERT INTO "
                       + MY_DATABASE_TABLE
                       + " (MyName, MyAge)"
                       + " VALUES ('Suman Ganguly', '22');");


               /////////////////////////////////////////////////////////
               //// Insert part

              // String value2 = extras.getString("nikvar");
                  // String value3 = extras.getString("niva");

              // String dfname = "Debosree ";
                   //String dlname = "Das";
                   //int dage = 24;
                   //String dcountry = "India";

                   //myDB.execSQL("INSERT INTO "
                 //     + MY_DATABASE_TABLE
                   //   + " (LastName, FirstName, Country, Age)"
                     // + " VALUES ('"+dfname+"', '"+dlname+"',
'"+dcountry+"', "+dage+");");

               //// End Insert Part
               /////////////////////////////////////////////////////////

               /* Query for some results with Selection and
Projection. */
               Cursor c = myDB.rawQuery("SELECT MyKey, MyName,MyAge"
+
                                        " FROM " + MY_DATABASE_TABLE
                                        + " WHERE MyAge > 0 LIMIT
400;",
                                        null);

               /* Get the indices of the Columns we will need */
               int MyNameColumn = c.getColumnIndexOrThrow("MyName") ;
               int MyAgeColumn = c.getColumnIndexOrThrow("MyAge");

               /* Check if our result was valid. */
               c.moveToFirst();
               if (c != null) {
                    /* Check if at least one Result was returned. */
                    if (c.isFirst()) {
                         int i = 0;
                         /* Loop through all Results */
                         do {
                              i++;
                              /* Retrieve the values of the Entry
                               * the Cursor is pointing to. */
                              String fullName = c.getString
(MyNameColumn);
                              int age = c.getInt(MyAgeColumn);
                              /* We can also receive the Name
                               * of a Column by its Index.
                               * Makes no sense, as we already
                               * know the Name, but just to show we
can  */
                              String ageColumName = c.getColumnName
(MyAgeColumn);
                              String MyKeyVal = c.getString(0);

                              /* Add current Entry to results. */
                              results.add("" + i + ": " + fullName + "
Key= " +MyKeyVal
                                             + " (" + ageColumName +
": " + age + ")");
                         } while(c.moveToNext());

                    }
               }

          } finally {
               if (myDB != null)
                    myDB.close();
          }

          this.setListAdapter(new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, results));
     }




}
Now my question is how can i insert the incoming messages into my
database?  I have tried a lot. Please kindly give me the appropriate
code to solve the problem.



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to