
public voID fetchSMS() { TelephonyManager tMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String operator=tMgr.getNetworkOperatorname(); Uri mSmsinBoxqueryUri = Uri.parse("content://sms/inBox"); String[] cols = new String[]{"_ID","thread_ID","address","person","date","body","type"}; Cursor cursor1 = getContentResolver().query( mSmsinBoxqueryUri,cols,null,null); if (cursor1!=null && cursor1.movetoFirst()) { do { String address = cursor1.getString(cursor1 .getColumnIndex(cols[2])); //String address2=(address.split("-"))[1]; String date = cursor1.getString(cursor1 .getColumnIndex(cols[4])); String msg = cursor1.getString(cursor1 .getColumnIndex(cols[5])); String type = cursor1.getString(cursor1 .getColumnIndex(cols[6])); smsLog.append("\n" + "Address:").append(address).append("\n" + "Date:").append(date).append("\n" + "Message:").append(msg).append("\n" + "Type:").append(type).append("\n\n"); cursor1.movetoNext(); } while (!cursor1.isAfterLast()); cursor1.close(); }}解决方法 可能对你有用. More Information refer this page.
SmsbroadcastReceiver.java
这是一个broadcastReceiver,它接收意图过滤的SMS消息. onReceive,我们提取SMS消息包并显示Toast消息,并通过将SMS消息添加到SMS收件箱列表来更新UI.当SMS消息到达时,收件箱会自动刷新.
public class SmsbroadcastReceiver extends broadcastReceiver { public static final String SMS_BUNDLE = "pdus"; public voID onReceive(Context context,Intent intent) { Bundle intentExtras = intent.getExtras(); 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]); String smsBody = smsMessage.getMessageBody().toString(); String address = smsMessage.getoriginatingAddress(); smsMessageStr += "SMS From: " + address + "\n"; smsMessageStr += smsBody + "\n"; } Toast.makeText(context,smsMessageStr,Toast.LENGTH_SHORT).show(); //this will update the UI with message SmsActivity inst = SmsActivity.instance(); inst.updateList(smsMessageStr); } }} SmsActivity.java
这是SMS应用程序的主要AndroID活动.它充当SMS收件箱.它有一个ListVIEw来显示SMS消息. onCreate我们从其Uri中读取内部SMS收件箱中的所有消息,并使用ListVIEw显示它们.
public class SmsActivity extends Activity implements OnItemClickListener { private static SmsActivity inst; ArrayList<String> smsMessagesList = new ArrayList<String>(); ListVIEw smsListVIEw; ArrayAdapter arrayAdapter; public static SmsActivity instance() { return inst; } @OverrIDe public voID onStart() { super.onStart(); inst = this; } @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_sms); smsListVIEw = (ListVIEw) findVIEwByID(R.ID.SMSList); arrayAdapter = new ArrayAdapter<String>(this,androID.R.layout.simple_List_item_1,smsMessagesList); smsListVIEw.setAdapter(arrayAdapter); smsListVIEw.setonItemClickListener(this); refreshSmsInBox(); } public voID refreshSmsInBox() { ContentResolver contentResolver = getContentResolver(); Cursor smsInBoxCursor = contentResolver.query(Uri.parse("content://sms/inBox"),null); int indexBody = smsInBoxCursor.getColumnIndex("body"); int indexAddress = smsInBoxCursor.getColumnIndex("address"); if (indexBody < 0 || !smsInBoxCursor.movetoFirst()) return; arrayAdapter.clear(); do { String str = "SMS From: " + smsInBoxCursor.getString(indexAddress) + "\n" + smsInBoxCursor.getString(indexBody) + "\n"; arrayAdapter.add(str); } while (smsInBoxCursor.movetoNext()); } public voID updateList(final String smsMessage) { arrayAdapter.insert(smsMessage,0); arrayAdapter.notifyDataSetChanged(); } public voID onItemClick(AdapterVIEw<?> parent,VIEw vIEw,int pos,long ID) { try { String[] smsMessages = smsMessagesList.get(pos).split("\n"); String address = smsMessages[0]; String smsMessage = ""; for (int i = 1; i < smsMessages.length; ++i) { smsMessage += smsMessages[i]; } String smsMessageStr = address + "\n"; smsMessageStr += smsMessage; Toast.makeText(this,Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printstacktrace(); } }} 总结 以上是内存溢出为你收集整理的android – 如何从电话接线员那里检索短信?全部内容,希望文章能够帮你解决android – 如何从电话接线员那里检索短信?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)