4

シャットダウン/再起動機能を作成しています。

    Intent intent = new Intent();  
    intent.setAction("android.intent.action.ACTION_SHUTDOWN");  
    sendBroadcast(intent); 

xml で:

<uses-permission  android:name="android.permission.SHUTDOWN"/>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="org.crazyit.net"
  android:versionCode="1"
  android:versionName="1.0" 
  android:sharedUserId="android.uid.system">

しかし、users-permission: にこのエラーがありますpermission is only granted to system apps

何か案が?

4

4 に答える 4

5

エラー メッセージで説明されているように、通常のアプリはこの権限を取得できません。電話を役に立たなくするアプリケーションを構築する可能性があるため、セキュリティ上のリスクになります。

于 2012-12-28T06:58:53.853 に答える
1

通常の SDK アプリケーションでは、電話をシャットダウンまたは再起動することはできません。ファームウェアの一部である (つまり、ファームウェア署名キーによって署名された) アプリケーションのみが、適切な許可を保持し、それらのアクションを実行できます。

ACTION_SHUTDOWNAndroid SDK ドキュメントでは、とはシステムによってのみ送信できる保護されたインテントであることが明確に述べられていACTION_REBOOTます。セキュリティ上の理由から、このインテントを使用してデバイスを再起動する権限はありません。

于 2012-12-28T07:03:23.637 に答える
0

私の場合、モバイルスイッチをオンにしてアプリを起動し、モバイルスイッチをオフにしてそのステータスを設定したいので、このように使用します

 <receiver android:name="WifiNotification" android:enabled="true" android:permission="android.permission.CHANGE_WIFI_STATE">
        <intent-filter >
            <action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
            <action android:name="android.net.wifi.SCAN_RESULTS"/>
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
        <intent-filter >
            <action android:name="android.intent.action.ACTION_SHUTDOWN"/>
        </intent-filter>
    </receiver> 

そして私のWifiNotificationで私は::

public void onReceive(Context context, Intent intent) {

   if (intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)
   {.
    .
    .
    }
    else if(intent.getAction().equalsIgnoreCase(Intent.ACTION_SHUTDOWN))
    {.
    .
    .
    }
}

パーミッションの 1 つは :: です。

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
于 2012-12-28T07:10:51.263 に答える