正在检查位置和数据服务,Android dev

时间:2017-03-18 11:12:54

标签: java android

我的问题是,当我检查位置服务和数据是否已关闭时,我的手机不会弹出没有启用数据或位置访问权限的通知,例如,如果其中一个是假的,它会显示通知。此功能不适用于我的华为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;
    }
}

任何想法为什么这不起作用?忽略布尔值的多余使用

1 个答案:

答案 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" />

我希望这可以在你的情况下工作,谢谢