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的「空白活動」項目生成。 –