2011-05-12 82 views
6

我正在嘗試開發一個Android應用程序,該應用程序在地圖上顯示各種網絡運營商的信號強度。問題是改變網絡運營商的唯一方法就是親自動手。用Android應用程序更改網絡運營商

有關如何在不更改手動的情況下獲取此信息的任何想法?我認爲有內部/私人Android類來做到這一點。

回答

1

您將需要使用一個或多個Google的內部API來執行此操作。默認情況下,它們不是可用於Android應用程序的各種(通常是好的)原因。例如,打開和關閉網絡連接並對其進行配置的API不是公共API,並且不能由第三方應用程序直接調用。

你需要做兩件事。首先,下載Android源代碼並找到您需要列出並切換運營商的API。你可以找到Android源代碼,並下載說明,here

其次,您將需要使用反射來調用這些API上的方法。最好的辦法就是寫一個代理類,我自己也使用tethering API。給它所有與你想要使用的API相同的方法,並且在每個方法中使用反射來調用API方法。任何其他技術將(a)在未將類似Android源代碼的部分添加到類路徑中的情況下編譯,然後(b)在部署時編譯但炸燬。

請注意,您最好在Nexus品牌的設備上執行此操作,因爲它擁有上面的Android代碼。我(成功)嘗試編寫一個主屏幕小部件,以在Nexus One上打開和關閉網絡連接,但在三星Galaxy Tab P1000上無法工作。該設備支持網絡共享,但三星已將其作爲移植工作的一部分進行了修改。