代码之家  ›  专栏  ›  技术社区  ›  Emmanuel

Android 1.6相当于EXTRA_网关

  •  8
  • Emmanuel  · 技术社区  · 14 年前

    我想实现一个网关来处理拨出的电话。

    在最新的Android版本2.x中,我可以使用隐藏的ACTION_CALL extra string轻松完成此操作: “com.android.phone.extra.GATEWAY-URI”

    谢谢, 伊曼纽尔

    2 回复  |  直到 14 年前
        1
  •  2
  •   AGrunewald    14 年前

    嘿,伊曼纽尔, 76%的设备已经运行了Android 2.x,这可能是白费力气。姜饼有望在今年年底面世,这将使1.6台设备的比例进一步下降。在不到半年的时间里,Android 2.x及更高版本将突破80%的大关。看看平台版本发行版 http://d.android.com/resources/dashboard/platform-versions.html

    我找到了你在 InCallScreen.java . 也许这给了你一种方法去挖掘旧的源代码,试图弄清楚你是否可以通过一些没有文档的api来访问它。但我的建议是,不要再为那些最后25%的1.6设备操心了,它们会很快消失。

    [更新] 因为这是一个工作的要求,我建议您重新编译git存储库中的手机应用程序,并使其可调试,这样您就可以确切地看到发生了什么。或许让ASOP设备运行1.6是深入研究Android的最佳选择。基本上,您必须将2.x中与此功能相关的所有代码移植回1.6。从上市时间的角度来看,我建议推出支持2.x的应用程序,并发布针对1.6的第二个版本。仅仅因为1.6而推迟发布似乎是个坏主意。

        2
  •  0
  •   Matthieu    14 年前

    使用网关URI的代码肯定是在Eclair中添加的。

        // If a provider is used, extract the info to build the
        // overlay and route the call.  The overlay will be
        // displayed the first time updateScreen is called.
        if (PhoneUtils.hasPhoneProviderExtras(intent)) {
            mProviderLabel = PhoneUtils.getProviderLabel(this, intent);
            mProviderIcon = PhoneUtils.getProviderIcon(this, intent);
            mProviderGatewayUri = PhoneUtils.getProviderGatewayUri(intent);
            mProviderAddress = PhoneUtils.formatProviderUri(mProviderGatewayUri);
            mProviderOverlayVisible = true;
    
            if (TextUtils.isEmpty(mProviderLabel) || null == mProviderIcon ||
                null == mProviderGatewayUri || TextUtils.isEmpty(mProviderAddress)) {
                clearProvider();
            }
        } else {
            clearProvider();
        }
    

    我没有别的选择。你最好的运气也许是从甜甜圈中获取那个电话应用程序,添加你需要的内容,然后在甜甜圈设备上作为一个新的电话应用程序发布。。。