Pourquoi est-ce que mon application jeter un android.la permission.REDÉMARRAGE SecurityException`?
J'ai écrit une application Android qui utilise android.os.PowerManager.reboot()
, et j'ai ajouté <uses-permission android:name="android.permission.REBOOT" />
dans mon AndroidManifest.xml
. Cependant, lorsque je lance l'application, il jette toujours l'exception suivante:
java.lang.SecurityException: Neither user 10039 nor current process has android.permission.REBOOT. at android.os.Parcel.readException(Parcel.java:1247)
at android.os.Parcel.readException(Parcel.java:1247)
at android.os.Parcel.readException(Parcel.java:1235)
at android.os.IPowerManager$Stub$Proxy.reboot(IPowerManager.java:427)
at android.os.PowerManager.reboot(PowerManager.java:481)
at Test.testPower(Test.java:374)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:186)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
at android.os.Parcel.readException(Parcel.java:1247)
at android.os.Parcel.readException(Parcel.java:1235)
at android.os.IPowerManager$Stub$Proxy.reboot(IPowerManager.java:427)
at android.os.PowerManager.reboot(PowerManager.java:481)
at com.fsl.cts.FSLPlaybackTest.testPower(FSLPlaybackTest.java:374)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:186)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
Est quelque chose que je fais mal, ou ne froyo ont un problème avec le redémarrage?
- qu'est-ce exactement avez-vous ajouté dans le fichier de manifeste? pouvez-vous l'envoyer?
InformationsquelleAutor oscar | 2010-08-11
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas obtenir cette autorisation. Seules les applications du système et des applications signé avec la même clé qui a été utilisé pour signer le firmware sera en mesure d'obtenir cette autorisation.
Pourquoi avez-vous besoin de redémarrer? Si vous dites à la nécessité de redémarrer, puis peut-être que quelqu'un peut vous proposer une meilleure façon de faire la même chose sans avoir à redémarrer.
Il ne peut pas être fait dans le stock de téléphones android. Mais, comme je l'ai posté dans d'autres similaires question, si le téléphone est enracinée, alors vous n'aurez aucun problème à tous:
Pour une explication, suivez le lien ci-dessus.
Autant que je sache, cette autorisation ne peut être râpé pour système d'applications, "les applications de l'utilisateur" ne peut pas obtenir cette permission
Pour redémarrer l'appareil à l'aide de code doit REDÉMARRER l'autorisation.
Cette autorisation est disponible pour les applications du système. Vous pouvez faire votre demande, un système d'application uniquement si vous avez le certificat utilisé dans la construction de l'image du système.
Il peut travailler:
Sinon,vous devez ajouter
android:sharedUserId="android.uid.system"
dans votre applicationSi vous avez de la racine, vous pouvez utiliser l'une de ces commandes:
dur"racine" :
"soft reboot" :