【发布时间】:2016-06-21 03:43:39
【问题描述】:
我和我的朋友一起构建了一个需要互联网连接才能运行的安卓应用程序。这是我们的第一个应用程序,我们只是初学者,非常感谢堆栈溢出。这对我们帮助很大。
所以我使用下面的代码来检测连接性
public class ConnectionDetector {
private Context _context;
public ConnectionDetector(Context context){
this._context = context;
}
public boolean isConnectingToInternet(){
ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null)
{
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}
}
return false;
}
}
并在splash活动中使用方法如下:
cd = new ConnectionDetector(getApplicationContext());
if (cd.isConnectingToInternet()) {
Intent intent = new Intent(SplashActivity.this, Home.class);
SplashActivity.this.startActivity(intent);
SplashActivity.this.finish();
} else {
Toast.makeText(SplashActivity.this, "No Internet Connection. Press back to exit", Toast.LENGTH_SHORT).show();
finish();
}
所以问题是当手机连接到移动数据时它工作正常,但当它连接到热点网络时,它只检测到网络连接而不是互联网。
所以方法返回 true,然后进入下一个活动,应用程序崩溃。
有没有办法解决这个问题?
我只是希望我的应用不应该崩溃。
【问题讨论】:
-
签出this。
标签: android