AndroidはGPSとネットワークがオンになっているかどうかを判断します


高徳地図でタクシーソフトを作り、アドレスを入力して検索マッチングするにはネットワークがないと検索できないことや、位置を特定するためにGPS状態をオンにし、オンにしなければダイアログボックスのヒントをポップアップし、選択すると制御インタフェースにジャンプします.
以下はGPSが接続されているかどうかの判断です.ポップアップダイアログを開くためのヒントです.コード:
 private void initGPS() {
        LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
        //   GPS      ,       
        if (!locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
            Toast.makeText(MainActivity.this, "   GPS", Toast.LENGTH_SHORT).show();
            final AlertDialog.Builder dialog = new AlertDialog.Builder(this);
            dialog.setTitle("   GPS  ");
            dialog.setMessage("           ,    GPS");
            dialog.setPositiveButton("  ", new android.content.DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface arg0, int arg1) {
                    //         ,    GPS
                    Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                    Toast.makeText(MainActivity.this, "            ,             ", Toast.LENGTH_SHORT).show();
                    startActivityForResult(intent, 0); //              
                }
            });
            dialog.setNeutralButton("  ", new android.content.DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface arg0, int arg1) {
                    arg0.dismiss();
                }
            });
            dialog.show();
        } else {
            searchRouteResult(startPoint, endPoint);//    
            //   Toast
//          Toast.makeText(TrainDetailsActivity.this, "GPS is ready",Toast.LENGTH_LONG).show();
//          //      
//          new AlertDialog.Builder(this).setMessage("GPS is ready").setPositiveButton("OK", null).show();
        }
    }

検出するには、このメソッドを適切な場所で呼び出すだけです.
以下は、Wifiとモバイルネットワークのどちらかがオンであればプロンプトダイアログをポップアップせず、いずれもオンでなければポップアップダイアログをポップアップします.コードは以下の通りです.
 /**
     *           
     * true      false    
     */
    public static boolean isConn(Context context) {
        if (context != null) {
            ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
            if (mNetworkInfo != null) {
                return mNetworkInfo.isAvailable();
            }
            searchNetwork(context);//       
        }
        return false;
    }

    /**
     *           ,          
     *                    
     */
    public static void searchNetwork(final Context context) {
        //     
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setTitle("      ").setMessage("       ,      ?").setPositiveButton("  ", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                Intent intent = null;
                //            API  10   3.0     
                if (android.os.Build.VERSION.SDK_INT > 10) {
                    intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
                } else {
                    intent = new Intent();
                    ComponentName component = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
                    intent.setComponent(component);
                    intent.setAction("android.intent.action.VIEW");
                }
                context.startActivity(intent);
            }
        }).setNegativeButton("  ", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        }).show();
    }

対応する場所でisConnメソッドを呼び出せばよい.