2014-02-10 99 views
0

我需要在我的應用程序中打開android設備的數據連接。我的手機已經紮根,其系統是android 2.3.5。不幸的是,下面的失敗:啓用移動數據連接失敗權限撤銷

// open data connection 
Class telephonyManagerClz=TelephonyManager.class; 
Method mGetITelephony=telephonyManagerClz 
     .getDeclaredMethod("getITelephony"); 
mGetITelephony.setAccessible(true); 
Object iTelephony = mGetITelephony.invoke(tm); 
Method mEnableDataConn=iTelephony.getClass() 
     .getDeclaredMethod("enableDataConnectivity"); 
mEnableDataConn.setAccessible(true); 
mEnableDataConn.invoke(iTelephony); 

這是logcat中顯示的異常: enter image description here

看來,我沒有MODIFY_PHONE_STATE許可,但我已經將其添加到的Manifest.xml尚未。可能是什麼問題呢?

回答

0

android.permission.MODIFY_PHONE_STATE是保留權限。如果您的應用程序使用系統證書籤名,則只能使用系統權限。

在安裝您的應用程序期間,您應該看到來自PackageManager的警告聲明權限已被吊銷。

雖然我並不完全熟悉對根目錄設備的重寫權限限制,但如果您尚未從源代碼構建系統,則不太可能擁有該證書,系統將繼續取消您的權限。我相信這是無法簽署您的應用程序來使用它。

+0

所以它是一個不可達的目標,除非我籤我的應用程序與系統證書? – monk

+0

您可能想嘗試將您的應用推入設備的系統應用文件夾。 –

+0

好的,非常感謝。 – monk