2013-01-14 179 views
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) 
+0

你怎么解决这个问题? –

回答

2

您错过了DEVICE_POWER权限。

编辑: 显然,只有系统应用程序被允许使用此权限,所以你实际上卡住了。

+0

如果我尝试在清单文件中显示错误时包含此权限,那么仅授予系统应用程序的权限 – Geethu

+0

什么样的错误? –

+0

只允许系统应用程序的权限 – Geethu

0

添加以下权限UR清单:

<uses-permission android:name="android.permission.DEVICE_POWER"/> 
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> 
+0

仍然是一样的错误 – Geethu