现在在做一个项目,APP 跟设备之间是 WIFI 连接,即 APP 连接的是设备提供的 WIFI 热点,是不能上网的,然后,现在要实现微信分享的功能。
微信分享使用的是友盟的SDK,在使用能连外网的WIFI时可以正常分享,悲剧的是项目中连的是不能上外网的WIFI。
经过搜索、测试发现,android 5.0 以上系统通过执行以下代码:
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static void bringUpCellularNetwork(Context context) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
return;
}
final ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkRequest networkReq = new NetworkRequest.Builder()
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
.build();
connMgr.requestNetwork(networkReq, new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(android.net.Network network) {
ConnectivityManager.setProcessDefaultNetwork(network);
}
});
}
可以使 APP 通过 3G/4G 访问外网,但是微信分享不能成功(调不出微信分享页面)。
初步分析,认为此时微信也需要能够上网才成,但是没找到通过程序让另外的APP(微信)也通过指定网络上网的接口,所以,想请教下是不是有方法能在连接不能上外网的WIFI的情况下,通过 3G/4G 网络来实现微信分享?
You need to be able to access the external network, and you must call the WeChat interface to achieve sharing.