simlar-android
simlar-android copied to clipboard
Network connection may not be being verified in method
Dear Developer!
My name is Camilo Escobar, I am a PhD Student at Universidad de los Andes, Colombia. I am part of a research on the usage of network libraries within android apps. As a result of this we identified that there is a missing validation of network connection within a method since some network operations are being performed in it.
As you might know, a device may not be connected to a network. In order to get such information see https://developer.android.com/reference/android/net/ConnectivityManager. Therefore it is recommended to identify whether the device has a network connection available before performing a network operation.
In order to address this issue we recommend you to visit:
- https://developer.android.com/training/basics/network-ops/managing
- https://developer.android.com/reference/android/net/ConnectivityManager.NetworkCallback
Note: public NetworkInfo getActiveNetworkInfo () returns details about the currently active default data network. When connected, this network is the default route for outgoing connections. You should always check NetworkInfo#isConnected() before initiating network traffic, it requires Manifest.permission.ACCESS_NETWORK_STATE. However, isConnected() was deprecated in API level 29, one could instead use the ConnectivityManager.NetworkCallback API to learn about connectivity changes, to be more specific the onAvailable() method.
Potential Code Location not verifying network connection before performing a network request:
https://github.com/simlar/simlar-android/blob/6af259d2c9c52dba69f508878679e21c77c484d4/app/src/main/java/org/simlar/https/HttpsPost.java#L79-L85