有没有办法检查广播接收器是否正常工作.
我是这样做的.我注册广播接收器,但它没有找到这个注册的接收器..
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设备上获取用户的位置.程序检查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语句.但它应该是假的.我该如何解决?