读取SIM卡上的短信失败

gujinf2008 2010-11-10 01:09:49
情况是这个样子滴:
可以读取手机上的短信,可以读取SIM卡上的联系人,就是读不到SIM卡上的短信,也设置权限了, <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> 还是读不到,myCursor 返回的是null。
为什么就读不到呢?
package simok.ok;

import android.app.Activity;
import android.os.Bundle;
import android.content.ContentResolver;
import android.database.Cursor;
import android.provider.Contacts.People;
import android.util.Log;
import android.widget.Toast;
import android.telephony.TelephonyManager;
import android.content.Context;
import android.content.Intent;
import android.telephony.gsm.*;
import android.content.Intent;
import android.widget.TextView;
import android.telephony.gsm.SmsMessage;
import android.database.sqlite.SQLiteException;
import android.net.Uri;

@SuppressWarnings("unused")
public class simok extends Activity {
private static final String LOG_TAG = "Sms Query";
//private TelephonyManager telMgr;
//String TAG = "GameScene";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//telMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE)
getSmsAndSendBack();
}
public void getSmsAndSendBack()
{
String[] projection = new String[] {"_id","address","person","body" };
//StringBuilder str=new StringBuilder();
// Cursor myCursor = cr.query(Uri.parse("content://sms/inbox"),projection,null, null ,null);
//Uri uri = Uri.parse("content://sms/icc");
//Cursor myCursor = managedQuery(Uri.parse("content://sms/inbox"),projection,null, null ,null);
//Cursor myCursor = managedQuery(Uri.parse("content://sms/icc"),projection,null, null ,null);
Cursor myCursor = managedQuery(Uri.parse("content://icc/adn"),projection,null, null ,null);
// Log.v(TAG, "onTouchDownReal()");
processResults(myCursor);
}
private void processResults(Cursor cur)
{
if (cur.moveToFirst())
//int count=cur.getCount();
//cur.moveToFirst();
//for(int i=0;i<count;i++)
{
String name;
String phoneNumber;
String sms;
int nameColumn = cur.getColumnIndex("person");
int phoneColumn = cur.getColumnIndex("address");
int smsColumn = cur.getColumnIndex("body");
do {
name = cur.getString(nameColumn);
phoneNumber = cur.getString(phoneColumn);
sms = cur.getString(smsColumn);
Log.i(LOG_TAG,"name="+name);
Log.i(LOG_TAG,"phoneNumber="+phoneNumber);
Toast.makeText(this,name+""+phoneNumber+""+sms,Toast.LENGTH_LONG).show();
} while (cur.moveToNext());
}
//cur.moveToNext();
else
{ Toast.makeText(this,"你好",Toast.LENGTH_LONG).show();}
}//processResults

// public final static String SMS_URI_ALL = "content://sms/"; //0
//public final static String SMS_URI_INBOX = "content://sms/inbox";//1
public final static String SMS_URI_SEND = "content://sms nt";//2
public final static String SMS_URI_DRAFT = "content://sms/draft";//3
public final static String SMS_URI_OUTBOX = "content://sms/outbox";//4
public final static String SMS_URI_FAILED = "content://sms/failed";//5
public final static String SMS_URI_QUEUED = "content://sms/queued";//6
//public final static String SMS_ICC = "content://sms/icc";//23

}
...全文
1437 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
漫步云端007 2012-08-13
  • 打赏
  • 举报
回复
我也想知道
钟秀 2012-07-05
  • 打赏
  • 举报
回复
Uri uri = Uri.parse("content://sms/icc");
String[] projection = new String[]{"service_center_address","address","message_class","body","date","status","index_on_icc",
"is_status_report","transport_type","type","locked","error_code","_id"};
String selection = null;
String[] selectionArgs = null;
String sortOrder = null;
Cursor cursor = managedQuery(uri, projection, selection, selectionArgs, sortOrder);
cursor.moveToFirst();


好像是只能获取到收件箱~
LakeSideHu 2011-10-28
  • 打赏
  • 举报
回复
为什么我只能读取到SIM卡上收到的信息,而读不到发出的信息呢?
gujinf2008 2011-01-04
  • 打赏
  • 举报
回复
读取是有方法的,网上有很多的,SmsManager类下有个方法getAllMessagesFromIcc(),他返回短信的列表,你好好研究研究,

SmsManager smger = null;
smger =SmsManager.getDefault() ;
list = smger.getAllMessagesFromIcc();

我原来不知道怎么访问这个getAllMessagesFromIcc()方法,说到这因该明白了吧,建议你看看源码,我是帮别人看的,没细研究,但是告诉你这些,读是没问题的。
zx404068203 2010-12-31
  • 打赏
  • 举报
回复
请问现在可以读取到了吗?我也需要在这个问题啦.可以说一下吗?
gujinf2008 2010-11-12
  • 打赏
  • 举报
回复
把设置改成 4 不用再运行一下吗?改了保存后给他bin目录下的apk就行了吗?
dinjay 2010-11-12
  • 打赏
  • 举报
回复
真机试过了么,也不行?
vclongking 2010-11-12
  • 打赏
  • 举报
回复
关注学习一下吧..
gujinf2008 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 redcgcn 的回复:]
我觉得吧,楼主,你的这种方法是读取不了Sim卡上的短信的。我这里用其他的方法实现了。不过现在有问题,不能够删除短信。
给你提供点思路,就是你看看SmsManager这个类。或许对你有帮助。
[/Quote]
为什么读取不到?能读就行了,删不删先不考虑,把代码贴出来吧,呵呵,谢谢了
gujinf2008 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 redcgcn 的回复:]
楼主,我的代码很简单的,
sms = mSmsManager.getAllMessagesFromIcc();

这句话可以读出所有的Sim卡上的短信,

读出以后是保存在sms这个数组里面的。
[/Quote]
我纳闷的只有一点,怎么访问都的,希望你赶紧给答复啊,谢谢了
gujinf2008 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 redcgcn 的回复:]
楼主,我的代码很简单的,
sms = mSmsManager.getAllMessagesFromIcc();

这句话可以读出所有的Sim卡上的短信,

读出以后是保存在sms这个数组里面的。
[/Quote]
关键是我不能访问getAllMessagesFromIcc();

redcgcn 2010-11-12
  • 打赏
  • 举报
回复
楼主,我的代码很简单的,
sms = mSmsManager.getAllMessagesFromIcc();

这句话可以读出所有的Sim卡上的短信,

读出以后是保存在sms这个数组里面的。
redcgcn 2010-11-11
  • 打赏
  • 举报
回复
我觉得吧,楼主,你的这种方法是读取不了Sim卡上的短信的。我这里用其他的方法实现了。不过现在有问题,不能够删除短信。
给你提供点思路,就是你看看SmsManager这个类。或许对你有帮助。
gujinf2008 2010-11-10
  • 打赏
  • 举报
回复
想问一下,在模拟器上能跑着类的程序吗,我的意思是,模拟器上没有sim卡,不可能读到什么sim卡上的联系人什么的,怎么会有结果显示呢?这类程序还得在真机上测吧?模拟器上是测不出什么的吧?
dinjay 2010-11-10
  • 打赏
  • 举报
回复
...看看别人有没有好办法吧
gujinf2008 2010-11-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dinjay 的回复:]
http://hi.baidu.com/dhqway/blog/item/d32cccd8e4fb863b33fa1c9e.html

Java code

Uri uri = Uri.parse("content://sms/icc");
String[] projection = null;//new String[]{"name","number"};
String sel……
[/Quote]
还是不好使,哎。。。。。
dinjay 2010-11-10
  • 打赏
  • 举报
回复
http://hi.baidu.com/dhqway/blog/item/d32cccd8e4fb863b33fa1c9e.html

Uri uri = Uri.parse("content://sms/icc");
String[] projection = null;//new String[]{"name","number"};
String selection = null;
String[] selectionArgs = null;
String sortOrder = null;
Cursor c2 = managedQuery(uri, projection, selection, selectionArgs, sortOrder);
c2.moveToFirst();

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧