android监听短信发送和接收

文章目录

目录

一、MainActivity和activity_main

二、创建service和util类

三、配置manifest


一、MainActivity和activity_main

import androidx.appcompat.app.AppCompatActivity;import android.content.ContentResolver;
import android.content.Intent;
import android.content.ServiceConnection;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {private Button start;private Button stop;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);start = findViewById(R.id.start);stop = findViewById(R.id.stop);//收取Intent intent = new Intent(MainActivity.this, MessageService.class);start.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {startService(intent);Toast.makeText(MainActivity.this, "开始监听", Toast.LENGTH_LONG).show();}});stop.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {stopService(intent);Toast.makeText(MainActivity.this, "关闭监听", Toast.LENGTH_LONG).show();}});//TODO 下面这一行功能没用,可以删掉getApplicationContext().getContentResolver().registerContentObserver(Uri.parse("content://sms/"),true, new SmsObserver(this, new Handler()));//为content://sms 的数据改变注册监听器
//        ContentResolver contentResolver = getContentResolver();
//        Uri uri= Uri.parse("content://sms/");
//        contentResolver.registerContentObserver(uri,true,new SMSActivity.SmsObsever(new Handler()));}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_centerVertical="true"android:text="Hello World!" /><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/start"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="开启监听" /><Buttonandroid:id="@+id/stop"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:text="关闭监听" /></RelativeLayout><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"></RelativeLayout></RelativeLayout>

二、创建service和util类

MessageService类

import android.app.Service;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;import java.security.Provider;public class MessageService extends Service {private MessageReciever mReceiver;@Overridepublic IBinder onBind(Intent arg0) {return null;}@Overridepublic void onCreate() {mReceiver = new MessageReciever();IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");registerReceiver(mReceiver, filter);}@Overridepublic void onDestroy() {if(null != mReceiver){unregisterReceiver(mReceiver);mReceiver = null;}}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {return super.onStartCommand(intent, flags, startId);}@Overridepublic boolean onUnbind(Intent intent) {return super.onUnbind(intent);}
}

 MessageReciever类

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.telephony.TelephonyManager;
import android.widget.Toast;import static android.telephony.TelephonyManager.PHONE_TYPE_CDMA;public class MessageReciever extends BroadcastReceiver {private static final String SMS_RECEIVER_ACTION = "android.provider.Telephony.SMS_RECEIVED";@Overridepublic void onReceive(Context context, Intent intent) {StringBuilder sBuilder = new StringBuilder();String format = intent.getStringExtra("format");if(SMS_RECEIVER_ACTION.equals(intent.getAction())){Bundle bundle = intent.getExtras();if(null != bundle){Object[] pdus = (Object[])bundle.get("pdus");assert pdus != null;SmsMessage[] messages = new SmsMessage[pdus.length];for(int i = 0; i < messages.length; ++i){messages[i] = SmsMessage.createFromPdu((byte[])pdus[i],format);}for(SmsMessage msg : messages){sBuilder.append("来自:").append(msg.getDisplayOriginatingAddress()).append("\n").append("短信内容:");sBuilder.append(msg.getDisplayMessageBody()).append("\n");}}}Toast.makeText(context, "您收到了一条短信!!\n" + sBuilder.toString(), Toast.LENGTH_LONG).show();}}

三、配置manifest和开启权限

这一段内容必须加

    <!-- 接收消息 --><uses-permission android:name="android.permission.RECEIVE_SMS"/><!--  发送消息--><uses-permission android:name="android.permission.SEND_SMS"/><!--  阅读消息--><uses-permission android:name="android.permission.READ_SMS"/><!--  写入消息--><uses-permission android:name="android.permission.WRITE_SMS" />

 这一段内容如果要使用广播就加service

        <!-- Service --><service android:name=".service.MessageService"android:label="@string/app_name"android:exported="true"><intent-filter><action android:name="org.anymobile.test.service.IMICHAT" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></service><!-- Receiver -->
<!--        <receiver android:name=".util.MessageReciever"-->
<!--            android:exported="true">-->
<!--            <intent-filter>-->
<!--                <action android:name="android.provider.Telephony.SMS_RECEIVED" />-->
<!--            </intent-filter>-->
<!--        </receiver>-->

app运行后,要长按应用进入App Info修改权限

 

运行监听短信图片

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4674.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么银行卡收不到消息服务器,你为什么收不到银行短信?

原标题&#xff1a;你为什么收不到银行短信&#xff1f; 银行卡想必大家都不陌生&#xff0c;现在的人手中基本上都会有个三五张银行卡&#xff0c;大家在去银行办理手续的时候一般都会开通短信提醒&#xff0c;以方便大家对资金进行掌控。 但是你有没有发现过这样一个现象&…

短信开发:收不到短信通知的解决办法

在应用、网站平台、APP软件的通知场景中&#xff0c;短信通知以其廉价、稳定、高效、直达等优势&#xff0c;成为企业的首选方式&#xff1b;但是&#xff0c;短信通知也存在一些问题&#xff0c;如&#xff1a; 1、短信被手机客户端软件拦截&#xff0c;进入垃圾箱&#xff1b…

警惕!爆火的ChatGPT 暗藏的安全隐患 数字信息的未来

近段时间以来&#xff0c;ChatGPT 在各大平台网站是刷屏一般的存在&#xff0c;随之而来的各式各样的赞美与吁叹&#xff0c;更是不断地勾起人们的好奇心理。但在几天铺天盖地式的营销之后&#xff0c;ChatGPT 的舆论在2月7日晚的舆论风口就发现了极大的转变&#xff0c;各平台…

从中台模式的式微,到ChatGPT的兴起

LLM如ChatGPT近期红的发紫&#xff0c;一线研发人员都感到了巨大的机会和危机感。但本文打算另辟蹊径&#xff0c;探讨这类技术&#xff0c;对互联网公司算法研发架构上的影响。 本文试图回答两个问题&#xff1a;近两年中台模式&#xff0c;尤其是算法中台逐渐地淡出。其背后原…

ChatGPT商业版源码共享

安装教程: 一台VPS 搭建宝塔 解析域名 上传程序至根目录 访问首页在线安装配置数据库 PHP版本选择:7.3 安装完成后访问网站首页即可&#xff01; 配置APIKEY&#xff0c;登录网站后台自定义配置&#xff0c;不然网站无法使用&#xff01; 网站后台地址/admin 默认账号…

ChatGPT与教育系列(一、ChatGPT)

未来已来&#xff0c;拥抱变化&#xff0c;拥抱未来 一、ChatGPT 1、ChatGPT定义 ChatGPT&#xff08;Chat Generative Pre-trained Transformer&#xff09;翻译成&#xff1a;聊天生成式预训练转换器&#xff0c;其中&#xff0c;“Chat Generative”表示聊天生成式&#x…

AI工程师岗位的崛起;一线创业者的观察与预测;微软生成式AI技能专业证书;使用ChatGPT创建App | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 全球人工智能指数&#xff1a;首个全面衡量投资、创新和实施水平的指数 6月28日&#xff0c;美国科技媒体 Tortoise 发布了第4版「全球…

ChatGPT官方App推出后,5项重点整理总结

ChatGPT 自从在年初推出以来&#xff0c;一直都只有提供网页版的服务&#xff0c;虽然有许多第三方的外挂或是开发者自行串接 OpenAI 的 API 开发出 ChatGPT 的 App 或是电脑版应用程序&#xff0c;但这些都不是 OpenAI 官方所推出的版本。 而 OpenAI 在正式宣布 ChatGPT 的官方…

狂飙,ChatGPT 官方 APP 突然上线了!

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达 今天凌晨&#xff0c;OpenAI 正式在 App Store 推出了 ChatGPT 的 iOS app。 瞬间冲上苹果商店免费榜第二名&#xff0c;效率榜第一名。 ChatGPT 的真「iPhone 时刻」来…

把中国法律法规喂给 ChatGPT = AI 法律助手

关于ChatGPT的各种工具层出不穷&#xff0c;AI写作、AI绘画这些已经卷成x了&#xff0c;今天给大家开个新眼界。 下面这位大佬把中国法律法规投喂给ChatGPT&#xff0c;做了一个&#xff1a;中国法律AI助手 一起看看演示&#xff1a; 离婚需要双方同意吗&#xff1f; AI&#x…

使用PyQt6编写的ChatGpt程序

最近ChatGpt挺火的&#xff0c;闲来无事在家使用Python的PyQt6库写了一个调用ChatGpt的GUI程序。记住无论如何调用ChatGpt&#xff0c;一定要先安装openai库。 pip3 install openai 下面直接晒代码吧&#xff1a; import sys from PyQt6.QtWidgets import (QWidget, QLabel,…

chatgpt赋能python:Python实现语音说话代码

Python实现语音说话代码 在最近的几年中&#xff0c;语音技术的发展为我们带来了许多便利。Python作为编程语言中的一支热门&#xff0c;也在这个领域担任了重要角色。在本文中&#xff0c;我们将介绍如何使用Python来实现语音说话代码。 为什么使用Python&#xff1f; Pyth…

人工智能交互革命:探索ChatGPT的无限可能-前言

随着人工智能的快速发展&#xff0c;交互方式的变革正在深刻地改变着我们的生活方式。人们正在越来越多地使用语音助手、智能家居等新型交互方式&#xff0c;而在这个领域中&#xff0c;自然语言生成技术正在扮演着越来越重要的角色。 在自然语言生成技术领域中&#xff0c;Ch…

ChatGPT: 交互式AI助手为互联网用户带来全新体验

目录 概述&#xff1a; 优势&#xff1a; 挑战&#xff1a; 未来发展方向&#xff1a; 概述&#xff1a; 在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;正以惊人的速度改变着我们的生活方式和体验方式。AI 的应用范围越来越广泛&#xff0c;从语音助手到…

使用Python开发ChatGPT AI工具助手(ChatCatsy):4天快速开发指南

引言&#xff1a; ChatGPT是一种基于人工智能的对话生成模型&#xff0c;它可以用于开发聊天机器人、虚拟助手等应用。本教程将指导您在3天内使用Python开发一个ChatGPT AI工具助手。无需担心&#xff0c;即使您是初学者&#xff0c;也可以轻松跟随本指南完成项目。 第一天&a…

阿猫智能机器人称:ChatGPT可以解析美联储讲话内容,预测股价

将ChatGPT应用于金融领域的浪潮来袭。本月发表的两篇学术论文中&#xff0c;研究人员们用ChatGPT进行金融市场相关的研究任务&#xff0c;其中一篇论文是关于解读美联储的声明是鹰派还是鸽派&#xff0c;另一篇是确定头条新闻对一只股票来说是好还是坏。 上述学术研究的初步结…

解析 ChatGPT 背后的工作原理

来源&#xff1a;大数据与机器学习文摘 本文约5000字&#xff0c;建议阅读10分钟本文解释了ChatGPT背后是如何工作的。 ChatGPT 是 OpenAI 发布的最新语言模型&#xff0c;相较于前身 GPT-3 有显著提升。与许多大型语言模型类似&#xff0c;ChatGPT 能以不同样式、不同目的生成…

谷歌版ChatGPT支持中文了!弱智吧实测结果在此

克雷西 发自 凹非寺量子位 | 公众号 QbitAI Claude 2发布之后&#xff0c;Google也按耐不住&#xff0c;立马官宣了Bard的船新版本。 支持的语言变多了&#xff0c;其中就包括中文&#xff0c;让广大网友直接喜提新玩具。 总结一下这次更新&#xff0c;主要包括这些内容&#x…

ChatGPT背后的核心技术报告(附下载)

输入几个简单的关键词&#xff0c;AI能帮你生成一篇短篇小说甚至是专业论文。最近大火的ChatGPT在邮件撰写、文本翻译、代码编写等任务上强大表现&#xff0c;让埃隆马斯克都声称感受到了AI的“危险”。ChatGPT的计算逻辑来自于一个名为transformer的算法&#xff0c;它来源于2…

官方正式版!哈工大最新93页《ChatGPT调研报告》,系统介绍大模型技术,内测哈工大“活字”对话大模型...

来源&#xff1a;哈尔滨工业大学、自然语言处理研究所&#xff08;HIT-NLP&#xff09; 2023年3月6日&#xff0c;哈工大自然语言处理研究所 ( HIT-NLP, since 1979 ) 师生联合撰写出《ChatGPT调研报告》&#xff08;84页&#xff09;&#xff0c;对“大模型”技术进行了系统的…