1

ボタンクリックでデバイスの画面を切り替えたいのですが、使ったコードは以下の通りです

public class MainActivity extends Activity {

Button powerOff;
int amountOfTime =0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

powerOff = (Button)findViewById(R.id.button1);
powerOff.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);

        // Choice 1
        manager.goToSleep(amountOfTime);

        // Choice 2
        PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag");
        wl.acquire();
        wl.release();
    }
});
}

許可も出た

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

それでもそれは例外を示しています

   01-14 16:06:00.875: E/AndroidRuntime(9317): FATAL EXCEPTION: main
   01-14 16:06:00.875: E/AndroidRuntime(9317): java.lang.SecurityException: Neither user 10079  nor current process has android.permission.DEVICE_POWER.
   01-14 16:06:00.875: E/AndroidRuntime(9317):  at android.os.Parcel.readException(Parcel.java:1322)
   01-14 16:06:00.875: E/AndroidRuntime(9317):  at android.os.Parcel.readException(Parcel.java:1276)
  01-14 16:06:00.875: E/AndroidRuntime(9317):   at android.os.IPowerManager$Stub$Proxy.goToSleep(IPowerManager.java:341)
  01-14 16:06:00.875: E/AndroidRuntime(9317):   at android.os.PowerManager.goToSleep(PowerManager.java:464)
4

2 に答える 2

2

DEVICE_POWER許可がありません。

編集:どうやら、システムアプリだけがこの権限を使用することを許可されているので、あなたは実質的に立ち往生しています。

于 2013-01-14T10:48:28.013 に答える
0

以下の権限をマニフェストに追加します。

<uses-permission android:name="android.permission.DEVICE_POWER"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
于 2013-01-14T10:54:26.930 に答える