我是在android源码里编译的package/apps/,因为需要调用的关机接口是不对上层开放的,在eclipse里面不能调用。

我主要是介绍调用android的关机功能,因为在调试过程中,关机的一些权限和其他条件是多于重启的,所以,如果能实现关机,那么重启也就没有问题了。

在AndroidManifest.xml中加入语句  android:sharedUserId="android.uid.system"  与系统一样的uid,将apk提升为系统权限

该语句加在版本号后。

然后再写入一条系统权限

该权限只有系统级apk才能使用,所以eclipse也不能编译。

之后,在xml中写两个button,一个关机,一个重启,在此不介绍xml了。

实现重启,需要调用android.intent.action.REBOOT, 该接口对上层开放,可以直接调用:

case R.id.reboot_btn:

Intent intent=new Intent(Intent.ACTION_REBOOT);

intent.putExtra("nowait", 1);

intent.putExtra("interval", 1);

intent.putExtra("window", 0);

sendBroadcast(intent);

break;

最后sendBroadcast也是系统级apk才可以发送。

实现关机,需要调用android.intent.action.ACTION_REQUEST_SHUTDOWN,此接口不对上层开放,在eclipse中是不能调用的,但是在源码中是有的,所以在源码中编译apk不会报错。

public static final String ACTION_REQUEST_SHUTDOWN="android.intent.action.ACTION_REQUEST_SHUTDOWN"

public static final String EXTRA_KEY_CONFIRM="android.intent.extra.KEY_CONFIRM"

Intent i=new Intent(ACTION_REQUEST_SHUTDOWN);

i.putExtra(EXTRA_KEY_CONFIRM, false);

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(i);

我看了好多博客,都是写的 Intent i=new Intent(Intent.ACTION_REQUEST_SHUTDOWN);

我试过了,就算在linux里面编译也会报错,所以这里是需要自己定义一个常量的,然后直接使用这个常量,千万不要用Intent点出来。

EXTRA_KEY_CONFIRM这个也需要自己定义,也没对上层开放。

因为是在linux下编译,所以需要写个Android.mk文件,可以去复制其他apk的该文件,稍做修改

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

# Only compile source java files in this apk.

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_SDK_VERSION := current

LOCAL_PACKAGE_NAME := Reboot

LOCAL_CERTIFICATE := platform

LOCAL_DEX_PREOPT :=false

include $(BUILD_PACKAGE)

# Use the following include to make our test apk.

include $(call all-makefiles-under,$(LOCAL_PATH))

我对mk文件不是很了解,说一下关键的地方:

LOCAL_PACKAGE_NAME:= 项目名

4.0以上编译apk需要加入 LOCAL_DEX_PREOPT := false 才能编译生成APK文件,默认true生成的不可独立安装运行

一定要加上该句 LOCAL_CERTIFICATE := platform  获取系统权限

我看到有人说要删掉bin目录,具体作用不清除,反正我删掉了

然后在android源码根目录 . build/envsetup.sh

再lunch 一个版本

进入项目有mk文件的目录 执行mm

编译出的apk路径在:out/target/product/anzhen4_mrd7/system/app/Reboot.apk

Android程序中重启系统,Android调用系统关机与重启功能相关推荐

  1. [免费专栏] Android安全之Android奇淫run-as命令,调用系统受UID限制的API

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 转移发布平台通知:将不再在CSDN博客发布新文章,敬请移步知 ...

  2. 【Android 逆向】Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

    文章目录 一.Android 逆向中使用的 android.permission 权限 二.Android 系统中的 Linux 用户权限 一.Android 逆向中使用的 android.permi ...

  3. 关于Android 4.4(华为)调用系统相机问题

    最近使用测试机(华为,4.4系统)调用系统相机进行拍照时,点击拍照完成,手机又反回了拍照页面,此时应该setResult上一个页面,但是上一个页面的onActivityResult没有被调用,大概有些 ...

  4. Android程序中读取使用已有的SQLite数据库

    方法一: 先在 Manifest 里添加权限: [java] view plaincopy print? <span style="font-size:12px;">& ...

  5. 将uni-app打包的H5放在 Android程序中在 webview 显示的两种方法

    将uni-app打包的H5放在 Android程序中在 webview 显示的两种方法 前言 Hash History 完事 前言 之前有个项目要同时做小程序和APP,本着节省时间的想法,研究了下un ...

  6. Python程序中各函数间调用关系分析与可视化

    中国大学MOOC"Python程序设计基础"免费学习地址 2020年秋季学期Python教材推荐与选用参考 推荐图书: <Python程序设计(第3版)>,(ISBN: ...

  7. android中布局全屏,怎么在Android 应用中实现一个全屏与非全屏功能

    怎么在Android 应用中实现一个全屏与非全屏功能 发布时间:2020-12-04 17:31:45 来源:亿速云 阅读:135 作者:Leah 怎么在Android 应用中实现一个全屏与非全屏功能 ...

  8. 动态头像 Android 实现,Android开发中实现一个头像滑动变大变小功能

    Android开发中实现一个头像滑动变大变小功能 发布时间:2020-11-21 16:36:20 来源:亿速云 阅读:74 作者:Leah 这篇文章给大家介绍Android开发中实现一个头像滑动变大 ...

  9. 计算机关机重启后黑屏,电脑关机后重启屏幕黑屏怎么办

    电脑关机后重启屏幕黑屏怎么办?这个问题比较特殊,可能有些网友不太了解,那么下面就由学习啦小编给你们介绍电脑关机后重启屏幕黑屏的原因及解决方法吧,希望能帮到大家哦! 电脑关机后重启屏幕黑屏的解决方法一: ...

  10. android自定义发彩信实现(不调用系统发彩信界面)

    最近几天,因为项目需要,发彩信界面不再是调用系统的界面,即不跳转到短信界面,这个功能起初感觉应该很简单,但是真正做起来后,发现其实没有想象中那么简单,刚做完项目,趁头脑清晰,先把代码写下来先: 这几天 ...

最新文章

  1. Java数据结构与算法:栈
  2. 前端学习(1680):前端系列实战课程之创建和显示蛇
  3. 这样就算会了PHP么?-11
  4. 唯美好看的动态个人鹿鸣404单页HTML源码
  5. 呼叫中心基层管理的目标和原则方法细分
  6. 如何从 Windows 虚拟机分离数据磁盘
  7. cad.net 更改高版本填充交互方式为低版本样子
  8. Red Giant Universe中文版
  9. java大作穿越arpg,超任帝国最后的挽歌 篇二:ARPG篇(动作角色扮演游戏)
  10. Android 快速集成文档校正能力 超简单
  11. Solidity IDE Remix中文版使用手册
  12. android 夜间模式源码,Android Support Library 之 夜间模式
  13. Analysis of Struts2 : http://wenku.baidu.com/view/ad421874a417866fb84a8e75.html
  14. Redis缓存一致性问题解决方案
  15. 快手老司机与抖音小姐姐 ,终有一战?
  16. Vue——vue3+ts
  17. 8021什么意思_违章代码8021是什么意思
  18. 利用sns.boxplot绘制箱型图的时候报错:AttributeError: ‘numpy.ndarray‘ object has no attribute ‘boxplot‘
  19. sts各版本下载地址
  20. 如何让android软件隐形,如何将Dock栏的微信App设置为隐形状态

热门文章

  1. 设计模式 | 原型模式
  2. nps内网穿透工具学习
  3. 笔记-MFC更换鼠标图片
  4. 青出于蓝而胜于蓝,这是一款脱胎于Jupyter Notebook的新型编程环境
  5. 宝塔面板搭建方维直播图文教程
  6. 优动漫PAINT入门宝典(图层篇)——混合模式
  7. C语言构造有理数的函数,创建有理数对象
  8. 闽江学院计算机毕设,闽江学院软件学院关于2017届毕业论文答辩有关事项的通知...
  9. zabbix Too many processes on xxx
  10. 级联样式单与CSS选择器