會使用到的權限
//--定位的
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
//--網路的
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.provider.Settings;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends Activity {
public boolean getService = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testLocationProvider();
testnetwork();
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
testLocationProvider();
testnetwork();
}
}
private void testnetwork() {
try {
ConnectivityManager mConnectivityManager = (ConnectivityManager)( this.getSystemService(Context.CONNECTIVITY_SERVICE));
NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
//如果未連線的話,mNetworkInfo會等於null
if(mNetworkInfo != null)
{
getService = true;
}
else {
AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);
ad.setTitle("開網路啦 ");
ad.setMessage("內容" );
ad.setNeutralButton("開網路喔!!",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//不做任何事情 直接關閉對話方塊
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); // 開啟設定頁面
}
});
ad.show();
//網路是否已連線(true or false)
mNetworkInfo.isConnected();
//網路連線方式名稱(WIFI or mobile)
// mNetworkInfo.getTypeName();
// //網路連線狀態
// mNetworkInfo.getState();
// //網路是否可使用
// mNetworkInfo.isAvailable();
// //網路是否已連接or連線中
// mNetworkInfo.isConnectedOrConnecting();
// //網路是否故障有問題
// mNetworkInfo.isFailover();
// //網路是否在漫遊模式
// mNetworkInfo.isRoaming();
}
}catch(Exception e){
e.printStackTrace();
}
}
private void testLocationProvider() {
// TODO Auto-generated method stub
try {
LocationManager status = (LocationManager) (this.getSystemService(Context.LOCATION_SERVICE));
if (status.isProviderEnabled(LocationManager.GPS_PROVIDER)|| status.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
// 如果GPS或網路定位開啟,呼叫locationServiceInitial()更新位置
getService = true; // 確認開啟定位服務
} else {
Toast.makeText(this, "請開啟定位服務", Toast.LENGTH_LONG).show();
AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);
ad.setTitle("您好,請把'定位'打開喔!! ");
ad.setMessage("內容喔" );
ad.setNeutralButton("開啟定位服務!!",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//不做任何事情 直接關閉對話方塊
startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); // 開啟設定頁面
}
});
ad.show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
我有參考這些網站
http://dean-android.blogspot.tw/2013/08/android-connectivity-network-active.html
http://shovachu-coding.blogspot.tw/2013/09/androidby-connectivitymanager.html
ps.這個網誌我是用來方便筆記用的,裡面的code 應該都會在其他網站看到,如果原作者有注意到什麼....要我拿掉的話請mail跟我說一下謝謝> <
沒有留言:
張貼留言