Android 接收系统广播,开机启动Service,SMS,Battery

2024-09-07 05:08

本文主要是介绍Android 接收系统广播,开机启动Service,SMS,Battery,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文内容摘自《疯狂Android讲义 第3版》李刚 著
这里写图片描述

自动开启的Service:

package shortcut.song.com.myapplication;import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.support.annotation.Nullable;import java.util.Timer;
import java.util.TimerTask;/*** Created by Administrator on 2017/8/17 0017.*/public class LauncherService extends Service {Timer mTimer = null;TimerTask mTimerTask = null;public LauncherBind myLauncherBind = new LauncherBind();public class LauncherBind extends Binder {}@Nullable@Overridepublic IBinder onBind(Intent intent) {return myLauncherBind;}@Overridepublic boolean onUnbind(Intent intent) {return super.onUnbind(intent);}@Overridepublic void onCreate() {super.onCreate();mTimer = new Timer();mTimerTask = new TimerTask() {@Overridepublic void run() {System.out.println("======LauncherService:"+ System.currentTimeMillis());}};mTimer.schedule(mTimerTask, 500, 1500);}
}
package shortcut.song.com.myapplication;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;/*** Created by Administrator on 2017/8/17 0017.*/public class LauncherBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Intent tIntent = new Intent(context, LauncherService.class);// 启动指定的Servicecontext.startService(tIntent);}
}
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/><receiver android:name=".LauncherBroadcastReceiver"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED"/></intent-filter>
</receiver>

SMS:

    <uses-permission android:name="android.permission.READ_SMS"/><receiver android:name=".SmsBroadcastReceiver"><intent-filter><action android:name="android.provider.Telephony.SMS_RECEIVED"/></intent-filter></receiver>
package shortcut.song.com.myapplication;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.widget.Toast;/*** Created by Administrator on 2017/8/17 0017.*/public class SmsBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {if ( intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {// 取消广播续继传播放abortBroadcast();StringBuilder sb = new StringBuilder();Bundle bundle = intent.getExtras();if (bundle != null) {Object[] pdus = (Object[])   bundle.get("pdus");SmsMessage[] messages = new SmsMessage[pdus.length];for (int i=0; i < pdus.length ; i++)  {messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);}for (SmsMessage message : messages) {sb.append("SMS src:");sb.append(message.getDisplayOriginatingAddress());sb.append(message.getDisplayMessageBody());}}Toast.makeText(context, sb.toString(), Toast.LENGTH_SHORT).show();}}
}

Battery:

    <uses-permission android:name="android.permission.BATTERY_STATS"/><receiver android:name=".BatteryReceiver"><intent-filter><action android:name="android.intent.action.BATTERY_CHANGED"/><action android:name="android.intent.action.BATTERY_LOW"/></intent-filter></receiver>
package shortcut.song.com.myapplication;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;/*** Created by Administrator on 2017/8/17 0017.*/public class BatteryReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Bundle bundle = intent.getExtras();int current = bundle.getInt("level");int total = bundle.getInt("scale");if (current * 1.0 / total < 0.15 ){Toast.makeText(context, "Battery Low!!!", Toast.LENGTH_SHORT).show();}}
}

这篇关于Android 接收系统广播,开机启动Service,SMS,Battery的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144145

相关文章

检查 Nginx 是否启动的几种方法

《检查Nginx是否启动的几种方法》本文主要介绍了检查Nginx是否启动的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 systemctl 命令(推荐)2. 使用 service 命令3. 检查进程是否存在4

解决idea启动项目报错java: OutOfMemoryError: insufficient memory

《解决idea启动项目报错java:OutOfMemoryError:insufficientmemory》:本文主要介绍解决idea启动项目报错java:OutOfMemoryError... 目录原因:解决:总结 原因:在Java中遇到OutOfMemoryError: insufficient me

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1