在我的应用程序中,我调用WebServices并获取GPRS值。问题是,当互联网未连接时,我的应用程序会生成“强制关闭”消息。请指导我,如何生成互联网不可用的消息或请连接互联网,它不会生成强制关闭的消息。谢谢你的帮助
请指教我的移动网络。如果它不是ON我的应用程序生成消息,请在移动网络上。怎么可能???
感谢Kittu& ram Kiran帮助:)
答案 0 :(得分: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;
}
每当您尝试调用webservice 时,都会调用此方法
if(haveNetworkConnection())
{
// call the webservice
}
添加<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
清单中的权限
答案 1 :(得分: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" />
此权限应添加到清单文件中。
答案 2 :(得分: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文件中完成
答案 3 :(得分:0)
在您的应用中关注此 Link for check Internet Connection
在上面的链接中我们使用警报Dailog检查所有类型的互联网连接。
您可以在应用程序中使用它来避免force close
您的应用程序。