原文地址:http://my.oschina.net/blackylin/blog/71692

1.在AndroidManifest.xml文件的manifest标签中加入一条android:sharedUserId="android.uid.system"

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.ipanel.update"android:versionCode="1"android:versionName="1.0" android:sharedUserId="android.uid.system" ><uses-sdkandroid:minSdkVersion="9"android:targetSdkVersion="15" />   <uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".MainActivity"android:label="@string/title_activity_main" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

2.在MainActivity中,有以下2种方式实现:

/*Intent reboot = new Intent(Intent.ACTION_REBOOT);  reboot.putExtra("nowait", 1);  reboot.putExtra("interval", 1);  reboot.putExtra("window", 0);  sendBroadcast(reboot); */
PowerManager pManager=(PowerManager) getSystemService(Context.POWER_SERVICE);
pManager.reboot("");

整个代码:

package com.demo.reboot;import java.io.File;
import java.io.IOException;
import java.io.InputStream;import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.PowerManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;public class MainActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button rebootBtn = (Button) findViewById(R.id.button2);rebootBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {new AlertDialog.Builder(MainActivity.this).setTitle("提示").setMessage("确认重启么?").setPositiveButton("重启", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// 重启/*String str = "重启";try {str = runCmd("reboot", "/system/bin");} catch (IOException e) {e.printStackTrace();}*//*Intent reboot = new Intent(Intent.ACTION_REBOOT);  reboot.putExtra("nowait", 1);  reboot.putExtra("interval", 1);  reboot.putExtra("window", 0);  sendBroadcast(reboot); */ PowerManager pManager=(PowerManager) getSystemService(Context.POWER_SERVICE);pManager.reboot("重启");System.out.println("execute cmd--> reboot\n" + "重启");}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// 取消当前对话框dialog.cancel();}}).show();}});}}

3.给apk签名

签名方法:
1)添加权限
    在AndroidManifest.xml文件下添加android:sharedUserId="android.uid.system" 。

2)在Eclipse中导出无签名的应用文件
   在工程中:右键->Android Tools -> Export Unsigned Application Package导出应用

3)找出系统签名密钥
   系统密钥为:platform.pk8和platform.x509.pem
   路径: build\target\product\security

4)找出系统签名工具
   工具为:signApk.jar
   路径:/out/host/linux-x86/framework/ signApk.jar

5)开始签名
  将第2、3、4步找到的无签名应用、platform.pk8、platform.x509.pem和signApk.jar放到同一文件夹下如F:\sign。
  打开 dos 操作界面,定们到F:\sign,输入命令:
  java -jar signapk.jar platform.x509.pem platform.pk8 a.apk b.apk
 (a.apk 为未签名应用 b.apk 为签名之后应用)

android应用实现重启系统相关推荐

  1. android手机怎么重启系统更新失败,安卓手机刷机失败怎么恢复?开不了机怎么办?...

    生活中难免会遇到安卓手机刷机失败.开不了机怎么办?下面小编为大家介绍解决方法,希望可以帮助有需要的人. 安卓手机刷机失败.开不了机怎么办? 工具材料 1.解锁的手机一部 2.数据线 3.能上网的电脑 ...

  2. Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...

    1.首先先来看一下修改前后的效果对比图 修改之后的图片 确认重启界面 具体的修改内容在下一篇中具体介绍. Android系统移植与调试之------->如何修改Android设备添加重启.飞行模 ...

  3. 如何在本地搭建一个Android应用crashing跟踪系统-ACRA

    https://github.com/bboyfeiyu/android-tech-frontier/tree/master/others/%E5%A6%82%E4%BD%95%E5%9C%A8%E6 ...

  4. Android 6.0-13.0系统兼容

    一.Android 6.0系统  官方文档:Android 6.0 1.新增运行时权限. 权限分为普通权限和危险权限,危险权限除了在清单文件即AndroidManifest.xml文件中注册,还需要在 ...

  5. Android:adb卸载系统应用软技能

    ADB卸载 首先,通过adb卸载应用,需要Android系统允许adb调试,正常的手机通过多次点击版本号,都可以进入开发者模式,在开发者模式允许adb调试.在某些Android机顶盒系统,系统是禁用a ...

  6. Android Framework 包管理子系统(03)应用安装

    该系列文章总纲链接:专题分纲目录 Android Framework 包管理子系统 本章关键点总结 & 说明: 导图是不断迭代的,这里主要关注➕ PkgMS安装应用部分.主要是三个步骤:从执行 ...

  7. 诺基亚N900安装Android 2.2改版系统Nitdroid教程

    诺基亚N900安装Android 2.2改版系统Nitdroid教程 近期掀起一阵Android的移植刷机高潮, HTC HD2. 诺基亚N900. 魅族M8( 点击查看教程)等大家熟悉的各种系统机型 ...

  8. tiny4412开发板实现uboot引导启动android 5.0.2系统

    1目的 实现uboot引导启动android 5.0.2系统. 2 现有环境 友善之臂tiny 4412开发板,superboot引导启动android5.0.2系统,内核版本为linux3.0.8. ...

  9. 【PC大变身】Android+Win8.1双系统

    本季逆天给大家带来的是PC变Android,我们来具体分析下~ android-x86-4.4-r1.iso   http://pan.baidu.com/s/1dDviYEd 笔记本都是些Mac系统 ...

最新文章

  1. IMLS:用于3D重构的深层隐式移动最小二乘函数(CVPR2021)
  2. 让编译器对一些警告闭嘴
  3. LeetCode-剑指 Offer 10- II. 青蛙跳台阶问题
  4. Ruby Shanghai 2014年终聚会总结
  5. 8软件遇到的问题及解决方法_Excel工作表中的8个常见问题,你一定遇到过,附解决方法...
  6. 二月,劝 Java 工程师不要跳槽!
  7. 支持蓝牙的模拟器_PM 2032电池模拟器展会现场演示
  8. 利用Python脚本编写一个学生平均成绩
  9. 随机对偶动态规划 SDDP,报童模型的一个 python 例子
  10. (vivo)安卓神器xposed框架Root安装指南
  11. 无法直接复制文件到ubuntu虚拟机解决
  12. 哥德尔命题6、背景知识和ω一致性观念——哥德尔读后之十七021-08-09
  13. sendto()_Linux C函数
  14. (用函数解决)Python报数游戏,输入有n个人按顺序编号,从第一个人报数,输入报数k,从1到k,报到k的退出游戏,从下一个人继续游戏,并求最后剩下的人编号是几号。
  15. 6年全栈工程师回答:web前端的主要学习什么,现在还有前途吗?一般工资是多少?
  16. Node学习HTTP模块(HTTP 服务器与客户端)
  17. 马尔受伤后,巴西媒体透露斯科拉里在训练中演练了三后腰阵型
  18. HBase (1)---数据模型
  19. 35岁前要培养的66种思维(下)
  20. windows bat文件去掉请按任意键继续的文字

热门文章

  1. mate40pro会搭载鸿蒙,华为 Mate40Pro 4G 版本入网,出厂搭载鸿蒙系统
  2. Tampermonkey油猴脚本搭配工具安装【网盘直链下载助手】
  3. 读《Android群英传》的一些感想
  4. 小程序获取头像昵称最新版本
  5. 《游戏引擎架构》试读感想
  6. 新《古惑仔》 —— 神转折大赛
  7. java实现下雪雪花飘落并堆积效果
  8. LabVIEW调试技巧
  9. 使用腾讯云轻量应用服务器搭建dplayer播放器弹幕服务器
  10. 计算机操作知识 p?p?t,计算机初级基本操作