本文整理汇总了Java中android.net.ConnectivityManager.registerNetworkCallback方法的典型用法代码示例。如果您正苦于以下问题:Java ConnectivityManager.registerNetworkCallback方法的具体用法?Java ConnectivityManager.registerNetworkCallback怎么用?Java ConnectivityManager.registerNetworkCallback使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.net.ConnectivityManager
的用法示例。
在下文中一共展示了ConnectivityManager.registerNetworkCallback方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: observeNetworkConnectivity
import android.net.ConnectivityManager; //导入方法依赖的package包/类
@Override public Observable<Connectivity> observeNetworkConnectivity(final Context context) {
final String service = Context.CONNECTIVITY_SERVICE;
final ConnectivityManager manager = (ConnectivityManager) context.getSystemService(service);
networkCallback = createNetworkCallback(context);
registerIdleReceiver(context);
final NetworkRequest request =
new NetworkRequest.Builder().addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
.build();
manager.registerNetworkCallback(request, networkCallback);
return connectivitySubject.toFlowable(BackpressureStrategy.LATEST).doOnCancel(new Action() {
@Override public void run() {
tryToUnregisterCallback(manager);
tryToUnregisterReceiver(context);
}
}).startWith(Connectivity.create(context)).distinctUntilChanged().toObservable();
}
示例2: registerLollipopNetworkReceiver
import android.net.ConnectivityManager; //导入方法依赖的package包/类
public static void registerLollipopNetworkReceiver(Context context) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
cm.registerNetworkCallback(
new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.build(),
new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
boolean connected = false;
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
connected = cm.bindProcessToNetwork(network);
} else if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
//noinspection deprecation
connected = ConnectivityManager.setProcessDefaultNetwork(network);
}
if(connected) {
Customerly.get().__SOCKET__check();
}
}
});
}
}
示例3: registerNetworkCallback
import android.net.ConnectivityManager; //导入方法依赖的package包/类
private void registerNetworkCallback(Context context) {
final ConnectivityManager manager =
(ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE);
manager.registerNetworkCallback(
new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.addTransportType(NetworkCapabilities.TRANSPORT_ETHERNET)
.build(),
new NetworkCallback() {
@Override
public void onAvailable(Network network) {
mSambaClient.reset();
}
});
}
示例4: resetNetwork
import android.net.ConnectivityManager; //导入方法依赖的package包/类
/**
* Initializes the network.
*/
private void resetNetwork() {
// Initialize network
onNoNetwork();
mConnectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest networkRequest = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_LOWPAN)
.build();
mBackgroundHandlerThread = new HandlerThread(TAG);
mBackgroundHandlerThread.start();
mHandler = new Handler(mBackgroundHandlerThread.getLooper());
// Make sure that it is connected to a valid network
mConnectivityManager.registerNetworkCallback(networkRequest,
mNetworkCallback, mUiThreadHandler);
}