测试了WIFI可以搜索到打印机,对比9.0和11.0系统以太网和WIFI都可以搜索到打印机,百思不得其解,最后求助RK大佬,跟他们经过一顿疯狂拉扯,最后抛出来一个patch 大概意思是某些App只认WIFI不认以太网,连以太网时认为没有网,反正最后是解决了。
尝试:
使用以太网时有些应用无法使用:
这是因为这些应用只认得wifi与mobile网络,不认得ethernet网络,所以它们认为没有网络。
现在的解决办法是使用以太网时仍然通过NetworkInfo. getType()告诉应用我们使用的是wifi网络,这样子这些应用就可以使用了。
diff --git a/core/java/android/net/NetworkInfo.java b/core/java/android/net/NetworkInfo.java
old mode 100644
new mode 100755
index 0b23cb7..a1e1939
--- a/core/java/android/net/NetworkInfo.java
+++ b/core/java/android/net/NetworkInfo.java
@@ -18,8 +18,10 @@ package android.net;
import android.os.Parcelable;
import android.os.Parcel;
+import android.os.Process;
import java.util.EnumMap;
+import android.util.Log;
/**
* Describes the status of a network interface.
@@ -175,6 +177,9 @@ public class NetworkInfo implements Parcelable {
*/
public int getType() {
synchronized (this) {
+ if(mNetworkType == 9 && Process.getUidForPid(Process.myPid()) > 10000) return 1; // 通过UID > 10000来判断当前是应用程序进程来获取net type,直接告诉它是wifi
return mNetworkType;
}
}