第五章 广播机制
1. 发送广播借助Intent,接收广播使用广播接收器。可以注册感兴趣的系统广播或其他程序的广播。
标准广播:异步执行,所有接收器几乎会在同一时刻接收到消息。
有序广播:各接收器按优先级顺序接收广播,可以截断广播使后面的接收器无法收到。
2. 接收系统广播
如手机开机发送一条广播,电池的电量变化发出一条广播,时间或时区改变的广播等。
动态注册:代码中注册,可以自由地控制注册与注销。
静态注册:AndroidManifest.xml中注册,可以实现开机启动等在程序未启动的情况下接收广播。
3. 自定义广播
自定义广播receiver, 发送自定义广播事件。
全局广播可以被其他进程接收,本地广播只能被本程序接收。
利用广播机制实现程序在任意位置可以实现下线功能。
第六章 数据存储
1. 文件读写
Context.openFileOutput()函数,在/data/data/<package_name>/file/目录下生成指定名称的文件。
Context.openFileInput()函数,从/data/data/<package_name>/file/目录下加载指定名称的文件。
2. 使用SharedPreferences存储
三种方法:使用Context类中的getSharedPreferences()方法,Activity类中的getPreferences()方法,
PreferenceManager类中的getDefaultSharedPreferences()方法。
可用于实现记住用户登陆密码功能。
3. SQLite数据库
创建数据库后,可以在控制台键入adb shell连接到模拟器存储器,sqlite3 db名打开数据库。
第七章 跨程序共享数据-内容提供器
1. 运行时权限
普通权限:不会直接威胁到用户的安全和隐私的权限,系统会自动帮我们授权,不需要手动操作。
危险权限:可能会触及用户的安全和隐私,如获取联系人信息,定位等,需要用户手动点击授权才能使用。
危险权限列表:
CALENDAR: READ_CALENDAR, WRITE_CALENDAR,
CAMERA: CAMERA,
CONTACTS:READ_CONTACTS, WRITE_CONTACTS, GET_CONTACTS,
LOCATION: ACESS_FINE_LOCATION, ACESS_COARSE_LOCATION,
MICROPHONE: RECORD_AUDIO
PHONE:READ_PHONE_STATE, CALL_PHONE, READ_CALL_LOG, WRITE_CALL_LOG, ADD_VOICEMAIL,
USE_SIP, PROCESS_OUTGOING_CALLS
SENSORS: BODY_SENSORS
SMS: SEND_SMS, RECEIVE_SMS, READ_SMS, RECEIVE_WAP_PUSH, RECEIVE_MMS
STORAGE: READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE,
2. 使用ContentResolver读取系统提供的内容:读取电话本
3. 自己创建内容提供器
第八章 运用手机多媒体
1. 使用通知(Notification)
使用PendingIntent响应通知按下事件,显示另外一个Activity。
2.使用摄像头拍照,选择本地照片显示。
3. 播放MP3
#Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)取得的有可能是手机内置存储目录。
4.播放MP4