dimanche 10 mai 2015

How to get column values ( All Mobile Numbers) from sqlite and use to send sms in other class?

I have method selectAll(); in my DatabaseHandler.java

public Cursor selectAll() {

    String query = "SELECT * FROM" + TABLE_CONTACTS;
    System.out.println(query);

    SQLiteDatabase db = null;
    Cursor cur = db.rawQuery(query, null);
    cur.moveToFirst();
    return cur;
   }

and i try to get column "KEY_PH_NO" from "TABLE_CONTACTS" and send SMS to stored numbers in Database.

DatabaseHandler db = new DatabaseHandler(this);

Cursor c=db.selectAll();

String number =c.getString(KEY_PH_NO);



public void sendSmsByManager() {
    try {
        // Get the default instance of the SmsManager
        SmsManager smsManager = SmsManager.getDefault();




        smsManager.sendTextMessage(number.toString(), 
                null,  
                smsBody.getText().toString(), 
                null, 
                null);
        Toast.makeText(getApplicationContext(), "Your sms has successfully sent!",
                Toast.LENGTH_LONG).show();
    } catch (Exception ex) {
        Toast.makeText(getApplicationContext(),"Your sms has failed...",
                Toast.LENGTH_LONG).show();
        ex.printStackTrace();
    }
}

This code give me no error but throws some exceptions, here is my LogCat:

 com.smart.scheduler/com.smart.scheduler.CampusActivity,ident = 1} 05-10    

15:17:01.892: V/ViewRootImpl(31416): onHardwarePostDraw:  mResizeBuffer =     
null,  mResizeAlpha = 0, this = ViewRoot{4228eae8 
com.smart.scheduler/com.smart.scheduler.CampusActivity,ident = 1}
05-10 15:17:01.893: V/ViewRootImpl(31416): ViewRoot performTraversals and    
draw- : mResizeBuffer = null, mResizeAlpha = 0, this = ViewRoot{4228eae8   
com.smart.scheduler/com.smart.scheduler.CampusActivity,ident = 1}
05-10 15:17:01.899: I/System.out(31416): SELECT * FROMcontacts
05-10 15:17:01.899: D/AndroidRuntime(31416): Shutting down VM
05-10 15:17:01.899: W/dalvikvm(31416): threadid=1: thread exiting with     
uncaught exception (group=0x41c529a8)
05-10 15:17:01.901: E/AndroidRuntime(31416): FATAL EXCEPTION: main
05-10 15:17:01.901: E/AndroidRuntime(31416): java.lang.RuntimeException:    
Unable to instantiate activity   
ComponentInfo{com.smart.scheduler/com.smart.scheduler.Sms}:   
java.lang.NullPointerException
05-10 15:17:01.901: E/AndroidRuntime(31416):    at    
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2239)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at 
android.app.ActivityThread.access$600(ActivityThread.java:156)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at 
android.os.Handler.dispatchMessage(Handler.java:99)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at 
android.os.Looper.loop(Looper.java:153)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at 
android.app.ActivityThread.main(ActivityThread.java:5336)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at 
java.lang.reflect.Method.invokeNative(Native Method)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at 
java.lang.reflect.Method.invoke(Method.java:511)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.
run(ZygoteInit.java:833)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at    
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at   
dalvik.system.NativeStart.main(Native Method)
05-10 15:17:01.901: E/AndroidRuntime(31416): Caused by:   
java.lang.NullPointerException
05-10 15:17:01.901: E/AndroidRuntime(31416):    at   
com.smart.scheduler.DatabaseHandler.selectAll(DatabaseHandler.java:79)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at com.smart.scheduler.Sms.  
<init>(Sms.java:99)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at 
java.lang.Class.newInstanceImpl(Native Method)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at 
java.lang.Class.newInstance(Class.java:1319)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at   
android.app.Instrumentation.newActivity(Instrumentation.java:1054)
05-10 15:17:01.901: E/AndroidRuntime(31416):    at          
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2230  
05-10 15:17:01.901: E/AndroidRuntime(31416):    ... 11 more

Aucun commentaire:

Enregistrer un commentaire