请先看部分代码 public void sendSms(){
SQLiteDatabase db=dbHelper.getReadableDatabase();
Cursor cursor=db.query(MmsDatabase.TB_NAME, null, MmsDatabase.ID+"=?",
new String[]{idMap.get(0)}, null, null, null);
Log.d("SendMmsService", "ID="+idMap.get(0));
if(cursor.getCount()==0){
Log.d("SendMmsService","cursor is null!");
return;
}
Log.d("SendMmsService","cursor Size="+cursor.getCount());
int indexNum=cursor.getColumnIndex(MmsDatabase.NUMBER);
int indexContent=cursor.getColumnIndex(MmsDatabase.MMS_CONTENT);
Log.d("SendMmsService","indexNum="+indexNum);
Log.d("SendMmsService","indexContent="+indexContent);
String smsNumber=cursor.getString(indexNum);
String smsContent=cursor.getString(indexContent);
Log.d("SendMmsService","smsNumber="+smsNumber);
Log.d("SendMmsService","smsContent="+smsContent);这是log信息:10-17 09:56:37.420: DEBUG/SendMmsService(1034): ID=1
10-17 09:56:37.420: DEBUG/SendMmsService(1034): cursor Size=1
10-17 09:56:37.420: DEBUG/SendMmsService(1034): ColumnNames=_id
10-17 09:56:37.430: DEBUG/SendMmsService(1034): indexNum=2
10-17 09:56:37.430: DEBUG/SendMmsService(1034): indexContent=6这是报错提示:10-17 09:56:37.440: ERROR/AndroidRuntime(1034): java.lang.RuntimeException: Error receiving broadcast Intent { act=come.demo.sendMms flg=0x4 (has extras) } in come.demo.SendMmsService$1@44f1ff88
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:905)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.os.Handler.handleCallback(Handler.java:587)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.os.Handler.dispatchMessage(Handler.java:92)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.os.Looper.loop(Looper.java:123)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.app.ActivityThread.main(ActivityThread.java:4633)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at java.lang.reflect.Method.invokeNative(Native Method)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at java.lang.reflect.Method.invoke(Method.java:521)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:649)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at dalvik.system.NativeStart.main(Native Method)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at come.demo.SendMmsService.sendSms(SendMmsService.java:147)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at come.demo.SendMmsService$1.onReceive(SendMmsService.java:49)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:892)请高手帮我看看,提点意见,谢谢。
SQLiteDatabase db=dbHelper.getReadableDatabase();
Cursor cursor=db.query(MmsDatabase.TB_NAME, null, MmsDatabase.ID+"=?",
new String[]{idMap.get(0)}, null, null, null);
Log.d("SendMmsService", "ID="+idMap.get(0));
if(cursor.getCount()==0){
Log.d("SendMmsService","cursor is null!");
return;
}
Log.d("SendMmsService","cursor Size="+cursor.getCount());
int indexNum=cursor.getColumnIndex(MmsDatabase.NUMBER);
int indexContent=cursor.getColumnIndex(MmsDatabase.MMS_CONTENT);
Log.d("SendMmsService","indexNum="+indexNum);
Log.d("SendMmsService","indexContent="+indexContent);
String smsNumber=cursor.getString(indexNum);
String smsContent=cursor.getString(indexContent);
Log.d("SendMmsService","smsNumber="+smsNumber);
Log.d("SendMmsService","smsContent="+smsContent);这是log信息:10-17 09:56:37.420: DEBUG/SendMmsService(1034): ID=1
10-17 09:56:37.420: DEBUG/SendMmsService(1034): cursor Size=1
10-17 09:56:37.420: DEBUG/SendMmsService(1034): ColumnNames=_id
10-17 09:56:37.430: DEBUG/SendMmsService(1034): indexNum=2
10-17 09:56:37.430: DEBUG/SendMmsService(1034): indexContent=6这是报错提示:10-17 09:56:37.440: ERROR/AndroidRuntime(1034): java.lang.RuntimeException: Error receiving broadcast Intent { act=come.demo.sendMms flg=0x4 (has extras) } in come.demo.SendMmsService$1@44f1ff88
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:905)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.os.Handler.handleCallback(Handler.java:587)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.os.Handler.dispatchMessage(Handler.java:92)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.os.Looper.loop(Looper.java:123)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.app.ActivityThread.main(ActivityThread.java:4633)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at java.lang.reflect.Method.invokeNative(Native Method)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at java.lang.reflect.Method.invoke(Method.java:521)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:649)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at dalvik.system.NativeStart.main(Native Method)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at come.demo.SendMmsService.sendSms(SendMmsService.java:147)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at come.demo.SendMmsService$1.onReceive(SendMmsService.java:49)
10-17 09:56:37.440: ERROR/AndroidRuntime(1034): at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:892)请高手帮我看看,提点意见,谢谢。
String smsContent=cursor.getString(indexContent);出现了报错。