-1

我正在使用一个呼叫应用程序,我需要检测我刚刚拨打的最近电话的通话时间。那么有没有任何包装或任何方法可以做到这一点?

4

1 回答 1

1

没有提供最近通话持续时间的特定方式或库,但您可以使用react-native-call-detection提供来电监听器,例如

import CallDetectorManager from 'react-native-call-detection'

startListenerTapped() {
    this.callDetector = new CallDetectorManager((event, phoneNumber)=> {
    // For iOS event will be either "Connected",
    // "Disconnected","Dialing" and "Incoming"

    // For Android event will be either "Offhook",
    // "Disconnected", "Incoming" or "Missed"
    // phoneNumber should store caller/called number


    if (event === 'Disconnected') {
    // Do something call got disconnected
    }
    else if (event === 'Connected') {
    // Do something call got connected
    // This clause will only be executed for iOS
    }
    else if (event === 'Incoming') {
    // Do something call got incoming
    }
    else if (event === 'Dialing') {
    // Do something call got dialing
    // This clause will only be executed for iOS
    }
    else if (event === 'Offhook') {
    //Device call state: Off-hook.
    // At least one call exists that is dialing,
    // active, or on hold,
    // and no calls are ringing or waiting.
    // This clause will only be executed for Android
    }
    else if (event === 'Missed') {
        // Do something call got missed
        // This clause will only be executed for Android
  }
},
false, // if you want to read the phone number of the incoming call [ANDROID], otherwise false
()=>{}, // callback if your permission got denied [ANDROID] [only if you want to read incoming number] default: console.error
{
title: 'Phone State Permission',
message: 'This app needs access to your phone state in order to react and/or to adapt to incoming calls.'
} // a custom permission request message to explain to your user, why you need the permission [recommended] - this is the default one
)
}

stopListenerTapped() {
    this.callDetector && this.callDetector.dispose();
}
于 2020-12-14T11:20:50.060 回答