相关疑难解决方法(0)

如何在Android上检测飞机模式?

我的应用程序中有代码可以检测Wi-Fi是否已主动连接.如果启用了飞行模式,该代码会触发RuntimeException.无论如何,我想在此模式下显示单独的错误消息.如何可靠地检测Android设备是否处于飞行模式?

java android airplane

87
推荐指数
6
解决办法
5万
查看次数

如何在android中以编程方式启用位置访问?

我正在研究与地图相关的android应用程序,我需要在客户端开发中检查位置访问是否启用,如果未启用位置服务则显示对话框提示.

如何在android中以编程方式启用"位置访问"?

gps android location-services

32
推荐指数
3
解决办法
7万
查看次数

Android:检查是否使用融合位置提供程序启用了位置服务

根据Android文档:

Google位置服务API是Google Play服务的一部分,它提供了一个功能更强大的高级框架,可自动处理位置提供程序,用户移动和位置准确性,而不是平台位置API android.location.

但是使用融合位置提供程序(来自Google Play服务中的位置API)我不知道如何检查用户是否启用了位置或禁用了位置.

使用旧的 android.location很容易:

locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
Run Code Online (Sandbox Code Playgroud)

但我不想同时使用Google Play服务融合位置提供商和旧的 Android位置.

如何检查用户是否使用融合位置提供程序启用了该位置?

提前致谢.

android location android-location google-play-services fusedlocationproviderapi

18
推荐指数
3
解决办法
3万
查看次数

如何在API 18及更低版本上检查位置是否已开启且具有高优先级

试过这个:

String locationProviders = Settings.Secure.getString(getActivity().getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
Log.d(TAG_MAP, locationProviders);
Run Code Online (Sandbox Code Playgroud)

输出是:gps,网络

API 18及以下的手机是否具有HIGH_ACCURACY优先级?

android

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

监控库中的位置设置

我正在开发一个可用于监控Android设备上的地理围栏的库.我注意到,我在设备设置中关闭并重新启用了位置服务后,我在Google Play位置服务GeofencingApi类中注册的地理围栏会丢失.

我见过人们建议我需要android.location.PROVIDERS_CHANGED在我的AndroidManifest.xml文件中注册广播接收器.我已经这样做了 - 但是当我在测试应用程序中添加和删除测试提供程序时,只会调用此广播接收器.在设备设置中切换位置服务时,我根本不接收它.

难道我做错了什么?有谁知道如何可靠地确定用户何时在设备设置中切换位置服务?我希望能够在后台看到这些事件 - 即使我的应用程序没有运行.

我想我可以设置一个在后台运行的重复任务,并定期检查是否已切换位置服务,但这听起来很粗糙,效率低下.

如果它有帮助,我正在测试运行Android 4.4.2的Moto G.我对地理围栏所做的一切工作到目前为止一直很好.

编辑:经过更多的研究后,我发现PROVIDERS_CHANGED广播的行为变化很大,具体取决于手机版本和型号.运行Android 5.1的我的Nexus 5似乎工作得很好 - 我能够PROVIDERS_CHANGED定期收听广播.我还有一台运行4.4.x的Moto G和Moto X手机,他们从未PROVIDERS_CHANGED为我制作过该广播.Android 4.2上的三星Galaxy S3会为我制作广播,但在我将Map活动与测试位置提供商一起使用后就停止了.

无论如何,我现在决定停止追求这个问题.我认为Android只是个错误.

android android-geofence

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

LocationAvailability无可用位置

Google FusedLocationProviderApifor Android最近在过去几个月内被弃用,FusedLocationProviderClient作为其继任者,因此我最近更新了客户端应用中使用的位置API以使用新的API.

每次onLocationAvailability被触发时LocationCallback我都会在locationAvailability.isLocationAvailable()返回时通知用户false,但看起来这种情况比我在某些设备上预期的更频繁.我在前台内运行这些位置更新Service,这些位置更新保持一致至关重要.有没有办法确定这种失败的原因

  1. 我们不会向最终用户表明任何误报
  2. 我们可以尝试解决问题,或者至少向最终用户报告他们应该做些什么?

在我看来,被弃用的API提供了对这些问题的更多洞察,因为它与它一起使用GoogleApiClient或者我可能缺少一些较小的细节.

android google-api

7
推荐指数
2
解决办法
1579
查看次数

什么位置提供商"被动"?在Android 2.2上看到HTC Desire

在我进入基于位置的模式之前,我通过调用检查是否存在任何位置提供者

List<String> android.location.LocationManager.getProviders(boolean enabledOnly) //enabledOnly = true
Run Code Online (Sandbox Code Playgroud)

并检查结果列表的大小.

现在我在Android 2.2的HTC Desire上测试了我的应用程序.系统设置不允许任何位置跟踪(GPS和移动设备已关闭).

但是,返回的列表有1个条目,其值为"被动".它是什么?我可以使用它吗?提供者似乎很慢/不工作.

android locationmanager android-location

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

Android:检查是否启用了Google设置位置

我正在开发一款使用Google Play服务的应用.在某些手机上,客户端为位置返回null.发生这种情况是因为在Google设置中未启用locaiton选项,如附带的图片中所示.

如何编程检查Android应用程序中是否启用了谷歌设置位置?

http://www.cnet.com/how-to/explaining-the-google-settings-icon-on-your-android-device/

android location google-play-services

6
推荐指数
2
解决办法
9265
查看次数

SettingsClient.checkSettings 始终失败,状态为 LocationSettingsStatusCodes.RESOLUTION_REQUIRED

我正在我的应用程序中使用LocationServices。在使用位置服务之前,我尝试验证具有所需设置的位置是否已打开,但我面临的问题SettingsClient.checkSettings始终是failing。请参阅我LocationRequestLocationSettingRequest建造者:

位置请求

 mLocationRequest = LocationRequest()
        mLocationRequest.interval = interval
        mLocationRequest.fastestInterval = interval

        Log.v(TAG, "distance => $distance")
        if(distance > 0) {
            mLocationRequest.smallestDisplacement = distance
        }

        mLocationRequest.priority = LocationRequest.PRIORITY_HIGH_ACCURACY

        buildLocationSettingsRequest()
Run Code Online (Sandbox Code Playgroud)

位置设置RequestBuilder

private fun buildLocationSettingsRequest() {
        val builder = LocationSettingsRequest.Builder()
        builder.addLocationRequest(mLocationRequest)
        mLocationSettingsRequest = builder.build()

        mSettingsClientInit = true
    }
Run Code Online (Sandbox Code Playgroud)

checkSettings要求

mSettingsClient.checkLocationSettings(mLocationSettingsRequest)
                .addOnSuccessListener(this, object : OnSuccessListener<LocationSettingsResponse> {

                    override fun onSuccess(locationSettingsResponse: LocationSettingsResponse) {
                        Log.i(TAG, "LocationManager: All location settings are satisfied.");
                        mLocationCallback?.let {
                            fusedLocationClient?.requestLocationUpdates(mLocationRequest, mLocationCallback, Looper.myLooper()); …
Run Code Online (Sandbox Code Playgroud)

android android-location kotlin google-play-services

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

Android WifiManager::getScanResults() 仍然返回空列表

作为一个新手到Android编程,我试图让使用WifiManager的SSID列表getScanResults()的方法,但它仍然是空的,即使我已经授予它的ACCESS_COARSE_LOCATION权限,以及对CHANGE_WIFI_STATE(对于startScan()方法),无论是在清单,并通过检查/在运行时请求它。

在 的广播接收器中SCAN_RESULTS_AVAILABLE_ACTION,我什至用键检查意图的额外字段,EXTRA_RESULTS_UPDATED结果返回true。

然而,list.size()总是返回 0。

我在这里缺少什么?我正在 Android 7.0 API 24 设备上进行测试。

编辑:代码如下:

主活动.java:

public class MainActivity extends Activity implements View.OnClickListener {
    private static final String TAG="WiFiDemo";

    WifiManager wifiManager;
    WifiBroadcastReceiver wifiReceiver;

    TextView textView;
    Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        Log.d(TAG, "onCreate()");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Check for permissions
        if ((ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
                != PackageManager.PERMISSION_GRANTED)
            || (ContextCompat.checkSelfPermission(this, Manifest.permission.CHANGE_WIFI_STATE)
                    != PackageManager.PERMISSION_GRANTED))
        {
            Log.d(TAG, "Requesting permissions");

            //Request permission
            ActivityCompat.requestPermissions(this,
                    new …
Run Code Online (Sandbox Code Playgroud)

android wifimanager

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

一旦位置关闭并再次打开,Android 地理围栏不会触发

我正在使用 Android 地理围栏 API。添加地理围栏后,当位置打开时,它工作正常。但是如果我关闭位置并再次打开,之后进入或退出时地理围栏不会触发。我已经在使用 Android 5.0.2 设备的 Moto G 上进行了测试。如果位置关闭,地理围栏是否会过期?

我在 Android 文档中看到,

如果用户禁用网络位置提供程序,地理围栏服务将停止更新,所有注册的地理围栏将被删除,并由提供的待处理意图生成意图。在这种情况下,从此意图创建的 GeofencingEvent 表示错误事件,其中 hasError() 返回 true,而 getErrorCode() 返回 GEOFENCE_NOT_AVAILABLE。

文档链接

android android-location android-geofence

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

如果用户关闭位置,如何在android中知道

如果用户在android中关闭了位置,我如何识别?我还想显示一个对话框以转到设置。

android location

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