我住在边境附近,在另一个国家工作。所以我选择了自己的网络提供商作为最爱。但是,我注意到它尽可能坚持提供者。因此,当我从我的国家开始时,即使我越过边境,我也会保留我的网络,但是,当我走另一条路时,即使我最喜欢的网络已经可用,它也会保留外国网络。我知道这一点,因为当我想手动选择它时,它可以在列表中找到。
现在,我想创建一个应用程序,每当它连接到另一个手机信号塔时,它会在漫游时自动搜索我的首选网络。 现在我明白了,以前我可以用广播接收器改变Cell Location,但现在这是不可能的。 (很可惜) 我从中读到: Programatically connecting to another Network operators 由于安全原因,我似乎无法从应用程序中选择其他提供程序。 (至少有记录的api调用)。
但是,我不关心公共API,因为我不打算在Android Market中分发这个。它只是一个让我的生活更轻松的应用程序,可能会打开源代码,所以其他人可以根据需要使用它。
我可以使用一些提示来实现这个目的。 所以也许还有其他我可以收听的广播内容,比如信号强度等等,这会启动我的代码来检查我是否可以切换网络。 我更喜欢这个作为广播接收器工作,我也读过,当使用服务中的Cell位置时,屏幕关闭时我不会得到更新,这在这种情况下会失败。
然后,我非常感谢有关如何在Android源代码中搜索可用于自动选择网络的内容的一些提示/指示。
答案 0 :(得分:1)
由于听起来您可能正在网络之间的可预测路径上旅行,您是否考虑过使用LocationManager的ProximityAlert功能?您可以在某个位置定义一个圆圈,当您的设备进入/退出该圆圈时,会向您的接收方发出广播。
我在Pro Android 3第17章中写了一节。我们的网站上有一个示例应用程序:
http://www.androidbook.com/projects
点击项目zip文件的链接,然后查找ProAndroid3_Ch17_Maps.zip
从上面的链接有下载和导入说明。 zip中的项目称为ProximityAlertDemo。这是非常基本的,只是为了显示Proximity Alert本身,但将它合并到应用程序或服务中应该不会太难。我担心如何从代码中切换网络,我没有答案。启动进入“设置”屏幕的建议似乎是您目前最好的选择。