Skip to content

Commit 8471de6

Browse files
committed
修复getNetworkType()方法在一体机判断以太网无效的问题
1 parent 667b3d7 commit 8471de6

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

utilcode/lib/src/main/java/com/blankj/utilcode/util/NetworkUtils.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ public static NetworkType getNetworkType() {
284284
NetworkType netType = NetworkType.NETWORK_NO;
285285
NetworkInfo info = getActiveNetworkInfo();
286286
if (info != null && info.isAvailable()) {
287-
if (info.getType() == ConnectivityManager.TYPE_ETHERNET) {
287+
if (isEthernet()) {
288288
netType = NetworkType.NETWORK_ETHERNET;
289289
} else if (info.getType() == ConnectivityManager.TYPE_WIFI) {
290290
netType = NetworkType.NETWORK_WIFI;
@@ -336,6 +336,28 @@ public static NetworkType getNetworkType() {
336336
return netType;
337337
}
338338

339+
/**
340+
* Return whether using ethernet.
341+
* <p>Must hold
342+
* {@code <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />}</p>
343+
*
344+
* @return {@code true}: yes<br>{@code false}: no
345+
*/
346+
@RequiresPermission(ACCESS_NETWORK_STATE)
347+
public static boolean isEthernet() {
348+
final ConnectivityManager connectivityManager = (ConnectivityManager) Utils.getApp().getSystemService(Context.CONNECTIVITY_SERVICE);
349+
final NetworkInfo ethernet = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET);
350+
if (ethernet != null) {
351+
NetworkInfo.State state = ethernet.getState();
352+
if (null != state) {
353+
if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {
354+
return true;
355+
}
356+
}
357+
}
358+
return false;
359+
}
360+
339361
@RequiresPermission(ACCESS_NETWORK_STATE)
340362
private static NetworkInfo getActiveNetworkInfo() {
341363
ConnectivityManager cm =

0 commit comments

Comments
 (0)