
The VPN adapter type is not effectively supported in WebRTC Android for 1) the network monitor may not obtain the VPN adapter type from the OS, e.g. via NetworkInfo.getType, 2) and VPN adapter type is replaced by the adapter type of an underlying network by the network monitor in the current implementation. Specifically, WebRTC Android would previously classify VPNs as either type ADAPTER_TYPE_UNKNOWN, or the type of the currently active network (which we assume the VPN is using). In this CL, VPNs are classified as ADAPTER_TYPE_VPN whenever possible, and the underlying network type, if available from the VPN, is separately stored and used to prioritize ICE candidates in network path selection. This allows ADAPTER_TYPE_VPN to be used in networkIgnoreMask to ignore VPNs when gathering ICE candidates. Bug: webrtc:9168 Change-Id: I9513c76a114ba967437b699e71223a4a2f13f34a Reviewed-on: https://webrtc-review.googlesource.com/70960 Commit-Queue: Qingsi Wang <qingsi@google.com> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23061}
This directory holds a Java implementation of the webrtc::PeerConnection API, as well as the JNI glue C++ code that lets the Java implementation reuse the C++ implementation of the same API. To build the Java API and related tests, make sure you have a WebRTC checkout with Android specific parts. This can be used for linux development as well by configuring gn appropriately, as it is a superset of the webrtc checkout: fetch --nohooks webrtc_android gclient sync You also must generate GN projects with: --args='target_os="android" target_cpu="arm"' More information on getting the code, compiling and running the AppRTCMobile app can be found at: https://webrtc.org/native-code/android/ To use the Java API, start by looking at the public interface of org.webrtc.PeerConnection{,Factory} and the org.webrtc.PeerConnectionTest. To understand the implementation of the API, see the native code in src/jni/pc/.