待机接口为
PowerManager.
goToSleep , 不过普通APK没有权限调用。
1. APP作为系统应用编译,apk的
AndroidManifest.xml
中添加
android:sharedUserId="android.uid.system", 并放到源码中android/packages/apps/目录下编译。
2. 如果没有APK源码, 在APK已经设置sharedUserId为system的前提下,可以通过以下方法编译成系统APK
将apk 放到
android/device/方案/prebuild/目录下, 修改Android.mk 增加以下内容:
#########################
include $(CLEAR_VARS)
LOCAL_MODULE :=
apk名字
LOCAL_MODULE_TAGS := optional
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_PATH := $(TARGET_OUT)/preinstall
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_MODULE_CLASS := APPS
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
include $(BUILD_PREBUILT)
修改
android/device/**方案名**/方案名.mk , 增加:
PRODUCT_PACKAGES +=
apk名字,和上面的LOCAL_MODULE 对应
然后编译源码, 完成后, apk在
out/target/product/**方案名**/system/preinstall 目录下
3. 修改
android.Manifest.permission.DEVICE_POWER 为普通权限。
修改
android/frameworks/
base/core/res/AndroidManifest.xml
<permission android:name="android.permission.DEVICE_POWER"
android:protectionLevel="
dangerous
" />
4. android 下查看休眠时间设置的命令如下
settings get system "screen_off_timeout"
6.0 系统也可以通过小机端的文件 ./data/system/users/0/settings_system.xml 去查看
5. 修改休眠时间方法如下:
休眠时间修改:
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<integer name="def_screen_off_timeout">1800000</integer>
默认无锁屏图案, 这样的话, 点击电源按键后就会直接进入系统, 不会显示锁屏图案:
方案.mk
PRODUCT_PROPERTY_OVERRIDES += \
ro.lockscreen.disable.default=true
或
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<bool name="def_lockscreen_disabled">false</bool> 改为 true;