【发布时间】:2014-10-18 06:58:34
【问题描述】:
我的代码来检查互联网连接。
public boolean internet() {
boolean flag = false;
//context=FindPeopleFragment_revice.this;
// FindPeopleFragment_revice.context = this;
ConnectivityManager cm = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm != null) {
NetworkInfo[] info = cm.getAllNetworkInfo();
if (info != null) {
if (info[0].getState() == NetworkInfo.State.CONNECTED
|| info[1].getState() == NetworkInfo.State.CONNECTED) {
flag = true;
} else {
flag = false;
}
}
}
return flag;
}
当我关闭/打开 Location API 时 Exception 在某一点出现:
ConnectivityManager cm = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
Ecexption 出现:
08-25 12:47:25.184: E/AndroidRuntime(29169): FATAL EXCEPTION: main
08-25 12:47:25.184: E/AndroidRuntime(29169): Process: info.staffmark, PID: 29169
08-25 12:47:25.184: E/AndroidRuntime(29169): java.lang.NullPointerException
08-25 12:47:25.184: E/AndroidRuntime(29169): at info.staffmark.FindPeopleFragment_revice.internet(FindPeopleFragment_revice.java:1210)
08-25 12:47:25.184: E/AndroidRuntime(29169): at info.staffmark.FindPeopleFragment_revice.onLocationChanged(FindPeopleFragment_revice.java:1822)
08-25 12:47:25.184: E/AndroidRuntime(29169): at com.google.android.gms.internal.jg$a.handleMessage(Unknown Source)
08-25 12:47:25.184: E/AndroidRuntime(29169): at android.os.Handler.dispatchMessage(Handler.java:102)
08-25 12:47:25.184: E/AndroidRuntime(29169): at android.os.Looper.loop(Looper.java:146)
08-25 12:47:25.184: E/AndroidRuntime(29169): at android.app.ActivityThread.main(ActivityThread.java:5511)
08-25 12:47:25.184: E/AndroidRuntime(29169): at java.lang.reflect.Method.invokeNative(Native Method)
08-25 12:47:25.184: E/AndroidRuntime(29169): at java.lang.reflect.Method.invoke(Method.java:515)
08-25 12:47:25.184: E/AndroidRuntime(29169): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
08-25 12:47:25.184: E/AndroidRuntime(29169): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
08-25 12:47:25.184: E/AndroidRuntime(29169): at dalvik.system.NativeStart.main(Native Method)
OnLocation 更改方法:
@Override
public void onLocationChanged(android.location.Location location) {
// TODO Auto-generated method stub
// internet = internet();
internet = cd.isConnectingToInternet();
Log.d("Net Status is", "Net is " + internet);
if (internet) {
Double Latitude=location.getLatitude();
Double Longitude=location.getLongitude();
variable.CurrentLat=Latitude;
variable.CurrentLong=Longitude;
Log.d("Latitude is", ""+Latitude);
Log.d("Longitude is", ""+Longitude);
try {
Thread.sleep(2000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
final Geocoder gcd = new Geocoder(getActivity().getApplicationContext());
List<Address> addresses;
try {
addresses = gcd.getFromLocation(Latitude, Longitude, 10);
for (Address address : addresses) {
if(address.getPostalCode()!=null){
// Log.d("licality",address.getLocality());
Log.d("postalcode","Postal Code is"+address.getPostalCode());
variable.currentZip=address.getPostalCode();
internet = internet();
if (internet) {
if(variable.LocationType.equals("")){
internet=internet();
if(internet){
if(LocationType.equals("")){
Location();
}
}else{
Toast.makeText(getActivity(), "Internet service is not available in your device.", Toast.LENGTH_LONG).show();
}
}else{
internet=internet();
if(internet()){
Data();
ShowMarkerMap();
}else{
Toast.makeText(getActivity(), "Internet service is not available in your device.", Toast.LENGTH_LONG).show();
}}
} else {
Toast.makeText(getActivity(),"Internet service is not available in your device.",Toast.LENGTH_LONG).show();
}
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在检查互联网连接时位置更改方法出现异常。
我很困惑如何解决这个问题。
请帮我解决这个问题,谢谢。
【问题讨论】:
-
包括堆栈跟踪...您是否请求访问网络状态的权限?
-
-
什么是行
FindPeopleFragment_revice.java:1210? -
这是在 1210 上:ConnectivityManager cm = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
-
我认为
getActivity()正在返回 null。你能检查一下并修复它吗?
标签: android connection android-location