我应该如何继续检查移动数据连接
How should I go ahead and check mobile data connectivity
如果没有互联网连接,我需要一条消息来显示。目前,如果 wifi 关闭,则 toast 方法将起作用并且不会继续。但是,如果我在没有服务计划的情况下打开我的移动数据,它仍然会打开一个空白 activity。
这是我从这里得到的代码
public static boolean isInternetAvailable(Context context)
{
NetworkInfo info = (NetworkInfo) ((ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (info == null)
{
Log.d(TAG,"no internet connection");
return false;
}
else
{
if(info.isConnected())
{
Log.d(TAG," internet connection available...");
return true;
}
else
{
Log.d(TAG," internet connection");
return true;
}
下面是我的 onClick 方法。
newsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(CheckNetwork.isInternetAvailable(MainActivity.this)) //returns true if internet available
{
moveToNews();
}
else
{
Toast.makeText(MainActivity.this,"Please Check Your Internet Connection and Try Again",Toast.LENGTH_LONG*4000).show();
}
检查互联网连接 -
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
}
在清单文件中 -
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
检查我下面的代码
[1]。在 AndroidManifest.xml
中添加以下行 internet 权限
<uses-permission android:name="android.permission.INTERNET" />
[2]。在你的 MainActivity 或 Parent activity 上你想显示或转到下一个 activity 添加下面的代码
[2.1] 全局声明如下 变量
private boolean isInternetConnected;
[2.2] 将下行添加到 onCreate()
isInternetConnected = isNetworkConnected(getApplicationContext());
[2.3]在下面添加方法
public boolean isNetworkConnected(Context context)
{
if(context != null)
{
ConnectivityManager cm = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm != null) {
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
return false;
} else
return true;
}
else
{
return true;
}
}
else
{
return true;
}
}
[3]。将以下代码添加到此行 isInternetConnected = isNetworkConnected(getApplicationContext());
下方的 onCreate()
if(isInternetConnected){
//Move to another Activity or display Toast
}
else{
//Toast of not connected with Internet
}
就是这样 ;)!!
如果没有互联网连接,我需要一条消息来显示。目前,如果 wifi 关闭,则 toast 方法将起作用并且不会继续。但是,如果我在没有服务计划的情况下打开我的移动数据,它仍然会打开一个空白 activity。
这是我从这里得到的代码
public static boolean isInternetAvailable(Context context)
{
NetworkInfo info = (NetworkInfo) ((ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (info == null)
{
Log.d(TAG,"no internet connection");
return false;
}
else
{
if(info.isConnected())
{
Log.d(TAG," internet connection available...");
return true;
}
else
{
Log.d(TAG," internet connection");
return true;
}
下面是我的 onClick 方法。
newsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(CheckNetwork.isInternetAvailable(MainActivity.this)) //returns true if internet available
{
moveToNews();
}
else
{
Toast.makeText(MainActivity.this,"Please Check Your Internet Connection and Try Again",Toast.LENGTH_LONG*4000).show();
}
检查互联网连接 -
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
}
在清单文件中 -
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
检查我下面的代码
[1]。在 AndroidManifest.xml
中添加以下行 internet 权限<uses-permission android:name="android.permission.INTERNET" />
[2]。在你的 MainActivity 或 Parent activity 上你想显示或转到下一个 activity 添加下面的代码
[2.1] 全局声明如下 变量
private boolean isInternetConnected;
[2.2] 将下行添加到 onCreate()
isInternetConnected = isNetworkConnected(getApplicationContext());
[2.3]在下面添加方法
public boolean isNetworkConnected(Context context)
{
if(context != null)
{
ConnectivityManager cm = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm != null) {
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
return false;
} else
return true;
}
else
{
return true;
}
}
else
{
return true;
}
}
[3]。将以下代码添加到此行 isInternetConnected = isNetworkConnected(getApplicationContext());
if(isInternetConnected){
//Move to another Activity or display Toast
}
else{
//Toast of not connected with Internet
}
就是这样 ;)!!