自己写了一个一键锁屏的程序,还是遇到了很多的BUG的,在此记录下。
MainActivity.java:
package com.chinachip.onekeylock;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.PowerManager;
import android.os.SystemClock;
import android.os.Process;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
pm.goToSleep(SystemClock.uptimeMillis());
Process.killProcess(Process.myPid()); //必须加此句,否则闪屏
}
}
Manifest.mk文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.chinachip.onekeylock"
android:sharedUserId="android.uid.system" //系统权限
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<permission android:name="android.permission.DEVICE_POWER"></permission> //灭屏权限
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoDisplay" >
//必须用此theme,否则闪屏
<activity
android:name=".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>
</application>
</manifest>
Android.mk文件:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_JAVA_LIBRARIES := libarity android-support-v4 guava
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := OneKeyLock
LOCAL_CERTIFICATE := platform //LOCAL_SDK_VERSION := current 不能加,否则就会报找不到goToSleep()方法的错误
LOCAL_PROGUARD_ENABLED := full
LOCAL_PROGUARD_FLAGS := -include $(LOCAL_PATH)/proguard.flags
#LOCAL_PRIVILEGED_MODULE := true //加入此句就编译进priv-app里面,默认编译到app里面
#LOCAL_DEX_PREOPT := false //是否解压出apk的odex文件,默认解压
include $(BUILD_PACKAGE)
# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))