小编ays*_*tl_的帖子

检查broadcstreceiver是否已注册?

有没有办法检查广播接收器是否正常工作.

我是这样做的.我注册广播接收器,但它没有找到这个注册的接收器..

PackageManager pm = getApplicationContext().getPackageManager();
final List<PackageInfo> packs = pm.getInstalledPackages(PackageManager.GET_RECEIVERS);
    for (final PackageInfo p : packs) {
        ActivityInfo[] receivers = p.receivers;
        if (receivers != null) {
            for (ActivityInfo ai : receivers) {
                if(AppDetectionService.class.getName().equals(ai.name)){
                    onOff[2] = true;
                }
            }
        }                   
    }
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver

9
推荐指数
2
解决办法
2万
查看次数

网络连接已关闭,但位置提供程序是NetworkProvider

我尝试在Android设备上获取用户的位置.程序检查GPS可用性.如果禁用GPSProvider,则会警告用户.如果用户未启用GPS,请对networkProvider进行程序检查.

检查网络提供商的代码,

public boolean askNetworkProvider(){

    if(!locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){
        AlertDialog builder = new AlertDialog.Builder(context)
                .setMessage("Enable Network Connection")
                .setTitle("Warning!")
                .setCancelable(true)
                .setPositiveButton("OK", new OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        return;
                    }
                } ).show();
    }

    if(locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){

         locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 2000, 0, networkListener);
         mlocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
         Log.i(LocationService.class.getName(),"Network Enable!!");
         return true;

     }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

即使wifi和移动连接被禁用,它也表示networkProvider已启用并输入第二个if语句.但它应该是假的.我该如何解决?

gps android locationmanager android-location

1
推荐指数
1
解决办法
1219
查看次数