我正在制作天气小工具。如果我在主屏幕上安装小部件,应用程序配置将自动启动。如果没有wifi或3g,我想阻止配置运行。我在AppWidgetProvider的实例中使用了ConnectivityManager,但它没有用。我在小部件配置的java类中使用了ConnectivityManager,但它仍然无法使用错误消息“..意外停止”。谁可以帮助我?
答案 0 :(得分:1)
您是否在清单文件中添加了使用权限以访问网络状态?如果没有,你应该添加它们。
答案 1 :(得分:0)
您需要向Manifest添加网络权限以检查网络可用性。并且不要忘记互联网权限。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
这是一个检查网络可用性的辅助类:
import android.app.Service;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetworkUtils
{
public static boolean isOnline(Service service)
{
ConnectivityManager mgr = (ConnectivityManager) service.getSystemService(Context.CONNECTIVITY_SERVICE);
return isOnline(mgr);
}
public static boolean isOnline(Context context)
{
ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
return isOnline(mgr);
}
private static boolean isOnline(ConnectivityManager mgr)
{
NetworkInfo netInfo = mgr.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected())
{
return true;
}
return false;
}
}