zoukankan      html  css  js  c++  java
  • Android 系统 reboot

    /***********************************************************************
     *                        Android 系统 reboot
     * 说明:
     *     由于需要对Android系统采用自动重启测试,为了方便觉得让app接收开机
     * 广播,然后又自动关机,貌似有点蛋疼。
     *
     *                                   2016-5-18 深圳 南山平山村 曾剑锋
     **********************************************************************/
    
    
    一、参考文章:
        1. Restart android device programmatically
            http://stackoverflow.com/questions/32984849/restart-android-device-programmatically
        2. INSTALL_FAILED_UPDATE_INCOMPATIBLE和INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
            http://blog.csdn.net/happyhell/article/details/5903389
        3. Android: android.content.res.Resources$NotFoundException: String resource ID #0x5
            http://stackoverflow.com/questions/11189545/android-android-content-res-resourcesnotfoundexception-string-resource-id-0x
    
    二、解决办法:
        1. 设置权限:
            <permission android:name="android.permission.REBOOT"/>
        2. 设置系统UID:
            <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                package="com.aplex.autoreboot"
                android:versionCode="1"
                android:versionName="1.0" 
                android:installLocation="preferExternal"
                android:sharedUserId="android.uid.system">
        3. 重启代码:
            PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
            pm.reboot(null);
        4. Android.mk
            LOCAL_PATH:= $(call my-dir)
            include $(CLEAR_VARS)
    
            LOCAL_MODULE_TAGS := optional
    
            LOCAL_SRC_FILES := $(call all-java-files-under)
    
            LOCAL_PACKAGE_NAME := AutoReboot
            LOCAL_CERTIFICATE := platform
    
            include $(BUILD_PACKAGE)
    
            # Use the folloing include to make our test apk.
            include $(call all-makefiles-under,$(LOCAL_PATH))
        5. 将工程放入Android源码packages/apps目录;
        6. 删除工程中无关目录,如bin、libs等目录;
        7. 用Android自带mmm命令编译app。
    
    三、error:
        1. error1:
            1. 错误现象:
                Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
                Please check logcat output for more details.
                Launch canceled!
            2. 解决办法:
                采用到Android源代码中去编译apk。
        2. error2:
            1. 错误现象:
                FATAL EXCEPTION: main
                android.content.res.Resources$NotFoundException: String resource ID #0x9
                    at android.content.res.Resources.getText(Resources.java:230)
                    at android.widget.TextView.setText(TextView.java:3769)
                    at com.aplex.autoreboot.MainActivity$1.handleMessage(MainActivity.java:25)
                    at android.os.Handler.dispatchMessage(Handler.java:99)
                    at android.os.Looper.loop(Looper.java:137)
                    at android.app.ActivityThread.main(ActivityThread.java:5041)
                    at java.lang.reflect.Method.invokeNative(Native Method)
                    at java.lang.reflect.Method.invoke(Method.java:511)
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
                    at dalvik.system.NativeStart.main(Native Method)
            2. 解决办法:
                Handler handler = new Handler() {  
                    public void handleMessage(Message msg) {  
                        
                        Log.e("aplex", "handleMessage " + msg.what );
                        if (msg.what < 100) {
                            count.setText(msg.what + "");  // 这里要加上""
                        } else {
                            PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
                            pm.reboot(null);
                        }
                        Log.e("aplex", "handleMessage over " + msg.what );
                        super.handleMessage(msg);  
                    }  
                };
        
  • 相关阅读:
    [转]ASP NET 缓存相关介绍及汇总
    比较经典的SQL行转列+分组集联
    平面向量的叉乘
    获得一点到三角形最近点
    检测线段是否有交集
    线段交集点计算
    UE4 移动设备 不显示影子问题
    Unity通过世界坐标系转换到界面坐标位置
    selemium 常用查找方法
    unity导入TexturePacker处理
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/5505319.html
Copyright © 2011-2022 走看看