2011-05-12 83 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上无法工作。该设备支持网络共享,但三星已将其作为移植工作的一部分进行了修改。