Android短信查询(三)——利用Loader实现短信查询
发布日期:2021-06-30 11:15:02 浏览次数:2 分类:技术文章

本文共 1797 字,大约阅读时间需要 5 分钟。

MainActivity如下:

package cc.c;import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.app.LoaderManager.LoaderCallbacks;import android.content.Context;import android.content.Loader;import android.database.Cursor;/** * Demo描述: * 利用Loader实现窃听查询 *  *  * 注意事项: * 1 Loader是3.0之后才引进来的 * 2 若在3.0之前使用Loader那么Activity须继承FragmentActivity * 3 在Loader内部封装好了ContentOberver * */public class MainActivity extends Activity implements LoaderCallbacks
{ private final int LOADER_ID=9527; private Context mContext; private Uri mUri=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ mContext=this; mUri = Uri.parse("content://sms/inbox"); this.getLoaderManager().initLoader(LOADER_ID, null, this); } @Override public Loader
onCreateLoader(int arg0, Bundle bundle) { String[] projection = new String[] {"_id","address","body","type"}; Loader
cursorLoader= new android.content.CursorLoader(mContext, mUri, projection, null, null, "date desc"); return cursorLoader; } @Override public void onLoadFinished(Loader
loader, Cursor cursor) { while (cursor.moveToNext()) { String address = cursor.getString(cursor.getColumnIndex("address")); String body = cursor.getString(cursor.getColumnIndex("body")); int id = cursor.getInt(cursor.getColumnIndex("_id")); String type = cursor.getString(cursor.getColumnIndex("type")); System.out.println("------> 收到新的短信:"+"来自="+address+",内容="+body+",id="+id+",类别="+type); break; } } @Override public void onLoaderReset(Loader
loader) { } }

main.xml如下:

AndroidManifest.xml如下:

 

 

 

 

 

转载地址:https://it9527.blog.csdn.net/article/details/25914245 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android短信查询(二)——利用ContentObserver实现短信查询
下一篇:C++基础教程(六)——指针(1)

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年05月03日 01时36分11秒