android应用实现重启系统
原文地址: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应用实现重启系统相关推荐
- android手机怎么重启系统更新失败,安卓手机刷机失败怎么恢复?开不了机怎么办?...
生活中难免会遇到安卓手机刷机失败.开不了机怎么办?下面小编为大家介绍解决方法,希望可以帮助有需要的人. 安卓手机刷机失败.开不了机怎么办? 工具材料 1.解锁的手机一部 2.数据线 3.能上网的电脑 ...
- Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...
1.首先先来看一下修改前后的效果对比图 修改之后的图片 确认重启界面 具体的修改内容在下一篇中具体介绍. Android系统移植与调试之------->如何修改Android设备添加重启.飞行模 ...
- 如何在本地搭建一个Android应用crashing跟踪系统-ACRA
https://github.com/bboyfeiyu/android-tech-frontier/tree/master/others/%E5%A6%82%E4%BD%95%E5%9C%A8%E6 ...
- Android 6.0-13.0系统兼容
一.Android 6.0系统 官方文档:Android 6.0 1.新增运行时权限. 权限分为普通权限和危险权限,危险权限除了在清单文件即AndroidManifest.xml文件中注册,还需要在 ...
- Android:adb卸载系统应用软技能
ADB卸载 首先,通过adb卸载应用,需要Android系统允许adb调试,正常的手机通过多次点击版本号,都可以进入开发者模式,在开发者模式允许adb调试.在某些Android机顶盒系统,系统是禁用a ...
- Android Framework 包管理子系统(03)应用安装
该系列文章总纲链接:专题分纲目录 Android Framework 包管理子系统 本章关键点总结 & 说明: 导图是不断迭代的,这里主要关注➕ PkgMS安装应用部分.主要是三个步骤:从执行 ...
- 诺基亚N900安装Android 2.2改版系统Nitdroid教程
诺基亚N900安装Android 2.2改版系统Nitdroid教程 近期掀起一阵Android的移植刷机高潮, HTC HD2. 诺基亚N900. 魅族M8( 点击查看教程)等大家熟悉的各种系统机型 ...
- tiny4412开发板实现uboot引导启动android 5.0.2系统
1目的 实现uboot引导启动android 5.0.2系统. 2 现有环境 友善之臂tiny 4412开发板,superboot引导启动android5.0.2系统,内核版本为linux3.0.8. ...
- 【PC大变身】Android+Win8.1双系统
本季逆天给大家带来的是PC变Android,我们来具体分析下~ android-x86-4.4-r1.iso http://pan.baidu.com/s/1dDviYEd 笔记本都是些Mac系统 ...
最新文章
- IMLS:用于3D重构的深层隐式移动最小二乘函数(CVPR2021)
- 让编译器对一些警告闭嘴
- LeetCode-剑指 Offer 10- II. 青蛙跳台阶问题
- Ruby Shanghai 2014年终聚会总结
- 8软件遇到的问题及解决方法_Excel工作表中的8个常见问题,你一定遇到过,附解决方法...
- 二月,劝 Java 工程师不要跳槽!
- 支持蓝牙的模拟器_PM 2032电池模拟器展会现场演示
- 利用Python脚本编写一个学生平均成绩
- 随机对偶动态规划 SDDP,报童模型的一个 python 例子
- (vivo)安卓神器xposed框架Root安装指南
- 无法直接复制文件到ubuntu虚拟机解决
- 哥德尔命题6、背景知识和ω一致性观念——哥德尔读后之十七021-08-09
- sendto()_Linux C函数
- (用函数解决)Python报数游戏,输入有n个人按顺序编号,从第一个人报数,输入报数k,从1到k,报到k的退出游戏,从下一个人继续游戏,并求最后剩下的人编号是几号。
- 6年全栈工程师回答:web前端的主要学习什么,现在还有前途吗?一般工资是多少?
- Node学习HTTP模块(HTTP 服务器与客户端)
- 马尔受伤后,巴西媒体透露斯科拉里在训练中演练了三后腰阵型
- HBase (1)---数据模型
- 35岁前要培养的66种思维(下)
- windows bat文件去掉请按任意键继续的文字