1

私のアプリケーションでは、WebServicesを呼び出してGPRS値を取得しています。問題は、インターネットが接続されていないときに、アプリケーションが「強制終了」のメッセージを生成することです。インターネットが利用できないというメッセージを生成する方法、またはインターネットに接続して強制終了のメッセージを生成しない方法を教えてください。手伝ってくれてありがとう

モバイルネットワークについてもご案内します。それがオンになっていない場合、私のアプリケーションはモバイルネットワーク上でお願いするメッセージを生成します。どのようにそれは可能ですか?

KittuとramKiranのヘルプに感謝します:)

4

4 に答える 4

4
private boolean haveNetworkConnection() 
{
    boolean haveConnectedWifi = false;
    boolean haveConnectedMobile = false;

    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo[] netInfo = cm.getAllNetworkInfo();
    for (NetworkInfo ni : netInfo) 
    {
        if (ni.getTypeName().equalsIgnoreCase("WIFI"))
            if (ni.isConnected())
                haveConnectedWifi = true;
        if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
            if (ni.isConnected())
                haveConnectedMobile = true;
    }
    return haveConnectedWifi || haveConnectedMobile;

}

Webサービスを呼び出そうとするときはいつでもこのメソッドを呼び出します

if(haveNetworkConnection())
{
    // call the webservice
}

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> マニフェストに権限を追加する

于 2012-11-22T05:23:55.250 に答える
0

このリンクをたどって、アプリケーションのインターネット接続を確認してください

上記のリンクでは、アラートDailogを使用してすべてのタイプのインターネット接続をチェックしています。アプリケーションでそれを使用して、アプリケーションを回避できforce closeます。

于 2012-11-22T06:07:03.830 に答える
0

あなたはこれを行うことができます:

//check connection
        public boolean isOnline() {
            ConnectivityManager cm =(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cm.getActiveNetworkInfo();
            if (netInfo != null && netInfo.isConnectedOrConnecting()) {

                return true;
            }

          //alert box to show internet connection error
            AlertDialog.Builder Internet_Alert = new AlertDialog.Builder(DinnerDenActivity.this);
            // set title
            Internet_Alert.setTitle("Attention!");
            Internet_Alert.setMessage("This application requires internet connectivity, no internet connection detected");
            Internet_Alert.setPositiveButton("Quit", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface arg0, int arg1) 
                {
                    Intent intent = new Intent(Intent.ACTION_MAIN);
                    intent.addCategory(Intent.CATEGORY_HOME);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);
                    onQuitPressed(); 
                }
            });

            Internet_Alert.create().show();
            return false;
        }

isOnlineはインターネット接続をチェックします

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

この権限は、マニフェストファイルに追加する必要があります。

于 2012-11-22T05:27:59.650 に答える
0

このような放送受信機も使用できます

public class NetworkBroadcastReceiver extends BroadcastReceiver{


    /*
     * (non-Javadoc)
     * 
     * @see android.content.BroadcastReceiver#onReceive(android.content.Context,
     * android.content.Intent)
     */
    @Override
    public void onReceive(Context context, Intent intent) {
        boolean isNetworkDown= intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
        if(isNetworkDown){
            ApplicationInfo.networkAvailable = false;
        }else{
            ApplicationInfo.networkAvailable = true;
        }
    }

}

そして、あなたのウェブサービスを呼び出す前に、あなたはApplicationInfo.networkAvailableこのようにチェックすることができます

if(!ApplicationInfo.networkAvailable){
    //show msg -> no network connectivity
}else{
    //proceed with WS call
}

の受信機を登録しますCONNECTIVITY_ACTION。これは、コードとAndroidManifestファイルで実行できます

于 2012-11-22T05:40:46.430 に答える