源码位置
原来的源码存在如下的问题
1、app 图标不可见
2、不支持录音文件列表浏览
3、app 主界面是对话框风格
要求效果如下
8.1 和 9.0 差异
1、mk 文件不同, 9.0 需要增加 LOCAL_PRIVATE_PLATFORM_APIS := true 配置,因为系统编译时多了 check,不然会报错 Must specify LOCAL_SDK_VERSION or LOCAL_PRIVATE_PLATFORM_API。
需要我们在 mk 中添加其中任意一个配置。
LOCAL_PRIVATE_PLATFORM_APIS := true 这个属性使源码编译时能引用 hide 的 api。
LOCAL_SDK_VERSION 标记 SDK 的 version 状态,可选值为 current system_current test_current core_current
添加了 LOCAL_SDK_VERSION 可能会使编译时找不到一些类,导包失败,SoundRecorder 就是这样,所以添加了 LOCAL_PRIVATE_PLATFORM_APIS
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_CERTIFICATE := platform LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := SoundRecorder #LOCAL_SDK_VERSION := current LOCAL_PRIVATE_PLATFORM_APIS := true include $(BUILD_PACKAGE)
2、主题设置不一样,源码是一样的,但是在 9.0 上,同样是 @android:style/Theme.Holo,menuItem 的颜色是黑色的,这样就看不清 音质 两个字,下面是一种巧妙的修改方法
packages\apps\SoundRecorder\src\com\android\soundrecorder\SoundRecorder.java
@Override public boolean onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); ... menu.getItem(OPTIONMENU_SELECT_FORMAT).setTitle(Html.fromHtml("<font color='#ffffff'>" + getString(R.string.voice_quality) +"</font>")); ... }
通过 html 标签来修改颜色


