Android实现系统重新启动的功能
Android实现系统重新启动的功能
发布时间:2016-12-28 来源:查字典编辑
摘要:首先定义布局文件:复制代码代码如下:布局文件其实很简单,就是一个按钮。注意android:sharedUserId="android.uid...

首先定义布局文件:

复制代码 代码如下:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.hzhi.restart"

android:versionCode="1"

android:versionName="1.0"

android:installLocation="preferExternal"

android:sharedUserId="android.uid.system">

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="17" />

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name="com.hzhi.restart.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:sharedUserId="android.uid.system",这是为了让应用分享一个系统级别的UID,否则会出现权限拒绝的错误。

类文件:

复制代码 代码如下:

package com.hzhi.restart;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

public void click(View view){

Intent intent = new Intent();

intent.setAction(Intent.ACTION_REBOOT);

intent.putExtra("nowait", 1);

intent.putExtra("interval", 1);

intent.putExtra("startTime", 1);

intent.putExtra("window", 0);

sendBroadcast(intent);

}

}

运行后会出错,这是因为程序运行时,使用的是系统默认的签名,而不是系统级别的签名。解决方法是将默认的签名删除,替换成系统级别的签名。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类