2016-12-02 125 views
0

我需要以編程方式打開/關閉移動數據。對於這個問題,我需要使用MODIFY_PHONE_STATE權限。 正如我們在最新的Android版本中所知道的那樣,對於非根植電話是不可能的,除非該應用具有系統權限。Android:如何獲得系統權限officialy

我知道存在一些解決方法,如何將系統應用程序簽名爲應用程序。但據我所知,Play商店不可能發佈這樣的應用程序。

我的問題是未來 - 是否有可能正式獲得系統權限?如果可能的話,我必須去找他們?

+0

「是否可以正式獲得系統權限?」 - 建立你自己的自定義ROM。然後,用用於簽署ROM的簽名密鑰簽署您的應用程序。或者,與設備製造商簽署分銷協議,他們將在那裏用他們的ROM簽名密鑰簽署您的應用程序。 – CommonsWare

+0

謝謝你的回答。當我需要一個應用程序來使系統正常時,創建自定義光盤是不合適的。而分銷協議可能是可以接受的決定。但我不明白一件事 - 爲什麼我應該與設備製造商談談,而不是與OS創建者(Google)?它應該是哪個製造商?這是否意味着,如果我與三星達成協議,那麼我的應用程序將在三星設備上工作,並且不會在HTC設備上運行(例如)? – user2775914

回答

1

得到它們的唯一方法是根植設備,或者自己構建設備映像。系統權限的概念是隻有系統創建者(OEM)信任的應用才能請求它們。您也可以通過爲設備生根來獲取它們,因爲它們的授權方式(基於安裝該應用程序的目錄,如果您擁有根目錄,則可以訪問該目錄)。但是沒有root或沒有創建你自己的操作系統映像是沒有辦法的。

+0

謝謝你的回答。在我的情況下,啓動設備是不可接受的。我理解系統權限的想法。其實我正在談論這個問題 - 我該怎麼做才能成爲值得信賴的應用?誰應該相信我?設備製造商(ROM創建者)?這是否意味着如果我想在自己的設備上運行我的應用程序,我應該與每個製造商交談? – user2775914

+1

OEM(或其他人安裝系統映像)。基本上,如果你不能根,你必須是一個預先安裝的應用程序。因此,不要讓OEM讓您成爲值得信賴的應用程序,而是讓用戶在購買應用程序時安裝您的應用程序。他們會以這樣的價格來做到這一點,或者如果你非常受歡迎(如Facebook流行),但它並不便宜。 –

0

MODIFY_PHONE_STATE是一個僅限於系統的權限,因此無法獲得該權限,除非您爲您的電話創建根目錄。