Android短信查询—利用Loader实现短信查询
程序员文章站
2022-06-15 09:42:10
利用Loader实现短信查询...
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<Cursor>{
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<Cursor> onCreateLoader(int arg0, Bundle bundle) {
String[] projection = new String[] {"_id","address","body","type"};
Loader<Cursor> cursorLoader=
new android.content.CursorLoader(mContext, mUri, projection, null, null, "date desc");
return cursorLoader;
}
@Override
public void onLoadFinished(Loader<Cursor> 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<Cursor> loader) {
}
}
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="利用Loader实现窃听短信"
android:layout_centerInParent="true" />
</RelativeLayout>
AndroidManifest.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cc.c"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="14" />
<uses-permission android:name="android.permission.READ_SMS" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="cc.c.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
本文地址:https://blog.csdn.net/lfdfhl/article/details/25914245
上一篇: php密码生成类实例
推荐阅读
-
android 利用第三方Mob,实现短信验证码
-
Android短信查询—利用Loader实现短信查询
-
Android短信查询功能—利用BroadcastReceiver实现短信查询
-
【黑马Android】(05)短信/查询和添加/内容观察者使用/子线程网络图片查看器和Handler消息处理器/html查看器/使用HttpURLConnection采用Post方式请求数据/开源项目_html/css_WEB-ITnose
-
【黑马Android】(05)短信/查询和添加/内容观察者使用/子线程网络图片查看器和Handler消息处理器/html查看器/使用HttpURLConnection采用Post方式请求数据/开源项目_html/css_WEB-ITnose
-
android 利用第三方Mob,实现短信验证码
-
Android短信查询—利用Loader实现短信查询
-
Android短信查询功能—利用BroadcastReceiver实现短信查询