編輯:關於Android編程
ConnectivityManager作為安卓網絡連接管理類,主要功能如下:
1. 通知應用網絡狀態的改變,發送廣播 ACTION:CONNECTIVITY_ACTION
2. WiFi,GPRS等網絡的連接管理(是否可用,連接狀態等)
3. 提供了一種api來讓應用去請求或是選擇網絡來進行數據的傳輸
需要的權限:
NetWorkActivity
public class NetWorkActivity extends ActionBarActivity {
private final static String TAG = RAISE;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_net_work);
check_network();
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(NetworkReceiver, filter);
}
private void check_network() {
//獲取網絡管理類
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
//得到當前可以使用的網絡
NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();
//判斷當前網絡類型
if (activeNetworkInfo != null) {
if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
Log.d(TAG, 當前網絡: + activeNetworkInfo.getTypeName());
} else if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
Log.d(TAG, 當前網絡: + activeNetworkInfo.getTypeName());
}
NetworkInfo.State state = activeNetworkInfo.getState();
if (state.ordinal() ==NetworkInfo.State.CONNECTED.ordinal()) {
Log.d(TAG, activeNetworkInfo.getTypeName() + 網絡可用);
}
} else {
Log.d(TAG, 無網絡可用);
}
}
BroadcastReceiver NetworkReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
Log.d(TAG, 廣播接受);
check_network();
}
}
};
@Override
protected void onDestroy() {
unregisterReceiver(NetworkReceiver);
super.onDestroy();
}
}
經測試發現,這個廣播會在注冊之後有一次調用
這個廣播只會在當前網絡切換為另一種網絡(必須可上網)或是無網絡時,才會調用
上圖:
當然也可以分別獲得mobile和wifi的NetworkInfo來分別處理
NetworkInfo mobile_networkInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifi_networkInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mobile_networkInfo.isConnected()){
//...
}
公鑰和私鑰的概念在現代密碼體制中加密和解密是采用不同的密鑰(公開密鑰),也就是公開密鑰算法(也叫非對稱算法、雙鑰算法)”,每個通信方均需要兩個密鑰,即公鑰和私
隨著手機用戶的增多,安卓手機軟件市場越來越火爆了。作為程序員,現在安卓編程是一項很火的工作,手游、軟件、系統的很多。 下面小編給學習安卓編程的朋
前面文章介紹了Android注冊廣播的過程,這篇介紹下廣播的發送過程。廣播的發送過程比廣播的注冊過程復雜的多,主要有以下幾個步驟:1.廣播的發送者將一個特定類型的廣播發送
項目涉及藍牙通信,所以就簡單的學了學,下面是自己參考了一些資料後的總結,希望對大家有幫助。 以下是開發中的幾個關鍵步驟:1、首先開啟藍牙 2、搜索可用