广播读取短信
来源:互联网 发布:软件需求分析方法 编辑:程序博客网 时间:2024/06/06 00:38
android.telephony.SmsMessage
A Short Message Service message.
Broadcast.class:
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.telephony.SmsMessage;import android.util.Log;import android.widget.Toast;public class Broadcast extends BroadcastReceiver { public static final String ACTION="android.provider.Telephony.SMS_RECEIVED"; @Override public void onReceive(Context context, Intent intent){ Toast.makeText(context, "收到短信", Toast.LENGTH_SHORT).show(); if(ACTION.equals(intent.getAction())){ SmsMessage smsMessage=null; String body=null; Bundle bundle=intent.getExtras(); if(null!=bundle){ Object[] pdus=(Object[])bundle.get("pdus"); if(pdus==null){ return; } for(Object obj:pdus){ smsMessage=SmsMessage.createFromPdu((byte[])obj); body=smsMessage.getDisplayMessageBody(); Toast.makeText(context,"这是广播读取短信内容:"+body,Toast.LENGTH_SHORT).show(); } String str[]=body.split(","); Toast.makeText(context,String.valueOf(str.length),Toast.LENGTH_SHORT).show(); Log.i("Debug",str[0]+" "+str[1]); /** if(str.length==2){ MainActivity.latitude=Double.valueOf(str[0]); MainActivity.longitude=Double.valueOf(str[1]); } */ Log.i("Debug",body); } } }}
在MainActivity.class中要动态申请权限:
List<String> permissionList=new ArrayList<>();if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_SMS)!=PackageManager.PERMISSION_GRANTED){ permissionList.add( Manifest.permission.READ_SMS);}if(ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.SEND_SMS)!=PackageManager.PERMISSION_GRANTED){ permissionList.add( Manifest.permission.SEND_SMS);}if(!permissionList.isEmpty()){ String[] permissions=permissionList.toArray(new String[permissionList.size()]); ActivityCompat.requestPermissions(MainActivity.this,permissions,1);}
@Overridepublic void onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResults){ switch(requestCode){ case 1: if(grantResults.length>0){ for(int result:grantResults){ if(result!=PackageManager.PERMISSION_GRANTED){ Toast.makeText(MainActivity.this,"您必须同意权限才能使用该功能!",Toast.LENGTH_SHORT).show(); finish(); return; } } }else{ Toast.makeText(MainActivity.this,"出现未知错误!",Toast.LENGTH_SHORT).show(); finish(); } break; }}
AndroidManifest.xml:
<uses-permission android:name="android.permission.RECEIVE_SMS"/><uses-permission android:name="android.permission.READ_SMS" /><uses-permission android:name="android.permission.SEND_SMS"/>
<!--短信广播监听器--><receiver android:name=".Broadcast" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter></receiver>
阅读全文
0 0
- 广播读取短信
- 利用广播读取即时短信
- [Android]通过广播读取短信
- 短信广播
- BroadcastReceive 系统广播 短信广播
- 短信读取
- 读取短信
- 短信读取
- 读取短信
- 读取短信
- 读取短信
- 短信接收广播
- android短信与广播
- 广播接收者拦截短信
- 短信的广播
- 短信广播接收者
- 短信广播接收者(拦截)
- 短信广播接收者
- linux内核模块范例代码及Makefile写法步骤
- swift
- myeclipse中本地修改的文件总是更新不到cvs上
- 分布式拒绝服务攻击(DDOS)
- hdu 1007 quoit design(分冶求距离最近的两点)
- 广播读取短信
- Pop Sequence
- GitHub仓库爬虫开发记录
- Selenium2+Python2.0自动化测试【16】 日历控件
- HTML table 标签边框问题(隐藏表格边框、单元格边框等)
- SGU 271 Book Pile(deque)
- 滴滴出行测试开发岗面试经验总结
- spring-boot 学习笔记(2)
- 前后端分离springmvc和RESTful理解