我的问题是,当我检查位置服务和数据是否已关闭时,我的手机不会弹出没有启用数据或位置访问权限的通知,例如,如果其中一个是假的,它会显示通知。此功能不适用于我的华为P8 Lite,但适用于我的Nexus仿真器
检查是否启用的功能:
public static boolean isServicesEnabled(Context context)
{
LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
boolean Data=false;
boolean GPS=false;
try
{
Data = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
GPS = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
catch(Exception e){return false;}
if((Data == true) && (GPS == true))
{
return true;
}else
{
return false;
}
}
任何想法为什么这不起作用?忽略布尔值的多余使用
答案 0 :(得分:0)
尝试检查数据服务
public boolean isNetworkConnected(Context context)
{
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
// There are no active networks.
return false;
} else
return true;
}
尝试此操作以检查GPS启用与否
LocationManager locationManager = (LocationManager) mContext
.getSystemService(LOCATION_SERVICE);
// getting GPS status
boolean isGPSEnabled = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
并且不要在清单文件中添加权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
我希望这可以在你的情况下工作,谢谢