著论准过秦,作赋拟子虚。这篇文章主要讲述安卓开发:广播的各种应用相关的知识,希望能为你提供帮助。
sd卡监听器:
package org.dreamtech.sdstate; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class SdcardStateReceiver extends BroadcastReceiver {@Override public void onReceive(Context context, Intent intent) { // 获取事件类型 String action = intent.getAction(); if ("android.intent.action.MEDIA_MOUNTED".equals(action)) { // sd卡挂载 } else if ("android.intent.action.MEDIA_UNMOUNTED".equals(action)) { // sd卡卸载 } }}
配置receiver
< receiver android:name="org.dreamtech.sdstate.SdcardStateReceiver"> < intent-filter > < action android:name="android.intent.action.MEDIA_MOUNTED"/> < action android:name="android.intent.action."/> < !--约束类型叫file 因为sd里面存的数据类型是file--> < data android:scheme="file"/> < /intent-filter> < /receiver>
短信监听器:
package org.dreamtech.smslistener; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telephony.SmsMessage; public class SmsListenerReceiver extends BroadcastReceiver {@Override public void onReceive(Context context, Intent intent) { Object[] objects = (Object[]) intent.getExtras().get("pdus"); for (Object object : objects) { SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) object); String messageBody = smsMessage.getMessageBody(); String address = smsMessage.getOriginatingAddress(); System.out.println("短信内容:" + messageBody + "####" + "来自" + address); } } }
注意配置和权限:
< ?xml version="1.0" encoding="utf-8"?> < manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.dreamtech.smslistener" android:versionCode="1" android:versionName="1.0" > < uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> < uses-permission android:name="android.permission.RECEIVE_SMS"/> < application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > < activity android:name="org.dreamtech.smslistener.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> < receiver android:name="org.dreamtech.smslistener.SmsListenerReceiver"> < intent-filter > < action android:name="android.provider.Telephony.SMS_RECEIVED"/> < /intent-filter> < /receiver> < /application> < /manifest>
卸载安装监听器:
package org.dreamtech.appstate; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class AppStateReceiver extends BroadcastReceiver {@Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if ("android.intent.action.PACKAGE_INSTALL".equals(action)) { // 应用安装(虽然存在,但是实际并不调用) } else if ("android.intent.action.PACKAGE_ADDED".equals(action)) { // 应用安装 } else if ("android.intent.action.PACKAGE_REMOVED".equals(action)) { // 应用卸载 } }}
配置:
< ?xml version="1.0" encoding="utf-8"?> < manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.dreamtech.appstate" android:versionCode="1" android:versionName="1.0" > < uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> < application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > < activity android:name="org.dreamtech.appstate.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> < receiver android:name="org.dreamtech.appstate.AppStateReceiver" > < intent-filter> < action android:name="android.intent.action.PACKAGE_INSTALL" /> < action android:name="android.intent.action.PACKAGE_ADDED" /> < action android:name="android.intent.action.PACKAGE_REMOVED" /> < !-- 注意配置约束 --> < data android:scheme="package" /> < /intent-filter> < /receiver> < /application> < /manifest>
【安卓开发(广播的各种应用)】
推荐阅读
- 《AndroidStudio每日一贴》2.高速查看项目中近期的变更
- ModSecurity is an open source, cross-platform web application firewall (WAF) module.
- Android ImgView属性
- 让App中增加LruCache缓存,轻松解决图片过多造成的OOM
- (转载) Android常见的几种内存泄漏小结
- Android Adb Analyse
- android 实现微信分享多张图片的功能
- android 6.0之后动态获取权限
- DIY平面设计软件推荐合集(10大最佳Canva替代品)