重新启动Android手机-权限拒绝

重新启动Android手机-权限拒绝,android,Android,我试图在某个时候重新启动(通过代码)手机。为了做到这一点,我这样做: 问题是,即使我在清单中有这一行: 使用权限android:name=“android.permission.REBOOT”(带分隔符) 当尝试执行它时,它会给我下一个错误: 我读到你应该创建一个.apk并用SignApk签名,但是我用openssl创建了密钥/证书并用它们签名,但这也没有运行,我继续得到完全相同的错误 你对如何解决这个问题并重新启动手机有什么线索吗?我真的需要这样做。Android应用程序不允许发送An

我试图在某个时候重新启动(通过代码)手机。为了做到这一点,我这样做:



问题是,即使我在清单中有这一行:

使用权限android:name=“android.permission.REBOOT”
(带分隔符)

当尝试执行它时,它会给我下一个错误:



我读到你应该创建一个.apk并用SignApk签名,但是我用openssl创建了密钥/证书并用它们签名,但这也没有运行,我继续得到完全相同的错误


你对如何解决这个问题并重新启动手机有什么线索吗?我真的需要这样做。

Android应用程序不允许发送
Android.content.Intent.ACTION\u重新启动

请看这里的注释


Android应用程序不允许发送
Android.content.Intent.ACTION\u重新启动

请看这里的注释

安装时,软件包安装程序向应用程序授予权限。但并非所有权限都将授予系统。有些系统权限不会授予用户应用程序,而只授予系统应用程序。以下是一些可能未授予用户应用程序的权限

要获得这些权限,必须使用用于对平台进行签名的密钥对应用程序进行签名。对于制造商而言,这可能有所不同。因此,实际上不可能将这些权限授予用户应用程序

安装时,软件包安装程序向应用程序授予权限。但并非所有权限都将授予系统。有些系统权限不会授予用户应用程序,而只授予系统应用程序。以下是一些可能未授予用户应用程序的权限

要获得这些权限,必须使用用于对平台进行签名的密钥对应用程序进行签名。对于制造商而言,这可能有所不同。因此,实际上不可能将这些权限授予用户应用程序

据我所知,权限重新启动仅适用于由硬件签名密钥签名的应用程序,即系统应用程序

public static final String ACTION_REBOOT

Since: API Level 1
Broadcast Action: Have the device reboot. **This is only for use by system code.**
**This is a protected intent that can only be sent by the system.**

Constant Value: "android.intent.action.REBOOT"
据我所知,权限重启仅适用于由硬件签名密钥签名的应用程序,即系统应用程序

public static final String ACTION_REBOOT

Since: API Level 1
Broadcast Action: Have the device reboot. **This is only for use by system code.**
**This is a protected intent that can only be sent by the system.**

Constant Value: "android.intent.action.REBOOT"

所以,除非你离开乐队,依靠超级用户,否则你将无法强制重启


因此,除非你离开频带并依赖超级用户,否则你将无法强制重新启动。

要通过代码重新启动Android设备,你需要“Android.intent.action.reboot”权限,该权限仅授予系统应用程序或使用与系统应用程序相同的密钥签名的应用程序。除此之外,还必须在Android清单中添加一个标记Android:sharedUserId=“Android.uid.system”。以确保应用程序与系统应用程序共享相同的uid


用于签署系统应用程序的密钥。是设备制造商独有的,不能复制。

要通过代码重新启动Android设备,您需要“Android.intent.action.REBOOT”权限,该权限仅授予系统应用程序或使用与系统应用程序相同密钥签名的应用程序。除此之外,还必须在Android清单中添加一个标记Android:sharedUserId=“Android.uid.system”。以确保应用程序与系统应用程序共享相同的uid

用于签署系统应用程序的密钥。是设备制造商独有的,不能复制

/**
 * Broadcast Action: Have the device reboot.  This is only for use by
 * system code.
 */
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_REBOOT =
        "android.intent.action.REBOOT";
public static final String ACTION_REBOOT

Since: API Level 1
Broadcast Action: Have the device reboot. **This is only for use by system code.**
**This is a protected intent that can only be sent by the system.**

Constant Value: "android.intent.action.REBOOT"