【问题标题】:How to detect a call Drop in android如何检测android中的通话掉线
【发布时间】:2016-01-08 05:47:45
【问题描述】:

我正在编写一个在电话交谈期间在后台运行的应用程序,并在通话结束后将坐标记录到文件中,我知道 Android 电话 API 可以检测到用户手动断开呼叫*(纠正我,如果我'我错了)*,

但是我想知道服务断开是否是由于呼叫丢失引起的,有没有办法或API可以用来实现这一点,

我所需要的只是以编程方式区分断开的呼叫和掉线的呼叫。

请帮忙。

【问题讨论】:

    标签: android phone-call telephony telephonymanager incoming-call


    【解决方案1】:

    试试这个代码,但我不确定..

    private getCallFailedString(Call call) { 
    
        Phone phone = PhoneApp.getInstance().phone; 
        Connection c = call.getEarliestConnection(); 
    
        Connection.DisconnectCause cause = c.getDisconnectCause(); 
    
        switch (cause) { 
            case BUSY: 
            break; 
    
        case CONGESTION: 
             break; 
    
        case LOST_SIGNAL: 
             break; 
    
        case LIMIT_EXCEEDED: 
             break; 
    
        case POWER_OFF: 
             break; 
    
        case SIM_ERROR: 
             break; 
    
        case OUT_OF_SERVICE: 
             break; 
    
        default: 
             break; 
    
        } 
    
    } 
    

    【讨论】:

    • 这是否会涵盖掉话事件...是否有一个阈值信号强度低于该阈值会发生掉话...?如果我们编写一个在所有呼叫期间触发并监控信号强度的服务,那么如果波动低于阈值,我们推断已经发生掉话......
    • 这是 Android 内部电话 API 的一部分,不容易访问。我不知道 Java 反射是否会在这种情况下工作。请查看此链接:programcreek.com/java-api-examples/…
    • 这是行不通的,主要方法是要求您的应用程序是系统应用程序,因此您需要一个 OEM 密钥。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多