CyanogenMod/Lineage OS具有通过双击状态栏来转动屏幕的功能。它只是关闭屏幕,而不是锁定设备。据我所知,这对普通应用程序来说是不可能的。 Store上的应用程序通过锁定设备来关闭设备。我浏览了Lineage OS的源代码,如果我理解正确,它似乎使用PowerManager.goToSleep()
。如何在我的应用程序中使用PowerManager.goToSleep()在Lineage操作系统上运行?
我想创建一个应用程序来关闭屏幕,以供我在运行Lineage操作系统的设备上使用。由于它是Lineage操作系统,而不是库存ROM,我可以做更多的事情,比如获取root访问权限或刷新某些内容。
但根据this question,该方法不能被第三方应用程序访问。我创建了一个简单的项目并调用了该方法,但是当我尝试构建项目时,发生了“错误:无法找到符号方法goToSleep(int)”。
我可以使用Android Studio和官方SDK创建一个调用该方法的应用程序吗?如果不是,我该如何构建调用该方法的应用程序?
添加请求的代码:
public class MainActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
pm.goToSleep(100);
}
}
清单:
<manifest package="com.example.turnofftest"
xmlns:android="http://schemas.android.com/apk/res/android">
....
<uses-permission android:name="android.permissions.DEVICE_POWER" />
</manifest>
阅读问题后“先验”说,我知道我必须使用平台的证书,签署的应用程序,我可能可以做到,因为Lineage OS是开源的。但首先,我需要建立它。
请发表您的代码 – ApriOri
我已添加源代码。除上述部分外,其他所有部分均由Android Studio的“空白活动”项目生成。 –