第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

啟用GPS的LocationSettingsRequest對話框-跳過onActivity

啟用GPS的LocationSettingsRequest對話框-跳過onActivity

互換的青春 2019-12-17 10:08:34
我的應用程序的一部分需要位置服務,因此,如果當前關閉了位置信息,則該應用程序將提示用戶啟用它。這是我的操作方式:(也在此堆棧溢出答案中看到)LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()            .addLocationRequest(mLocationRequest);builder.setAlwaysShow(true);PendingResult<LocationSettingsResult> result = LocationServices.SettingsApi.checkLocationSettings(mGoogleApiClient, builder.build());result.setResultCallback(new ResultCallback<LocationSettingsResult>() {     @Override     public void onResult(LocationSettingsResult result)      {         final Status status = result.getStatus();         final LocationSettingsStates = result.getLocationSettingsStates();         switch (status.getStatusCode())          {             case LocationSettingsStatusCodes.SUCCESS:                 // All location settings are satisfied. The client can initialize location                 // requests here.                 ...                 Log.d("onResult", "SUCCESS");                 break;             case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:                 // Location settings are not satisfied. But could be fixed by showing the user                 // a dialog.                 Log.d("onResult", "RESOLUTION_REQUIRED");                 try                  {                     // Show the dialog by calling startResolutionForResult(),                     // and check the result in onActivityResult().                     status.startResolutionForResult(OuterClass.this, REQUEST_LOCATION);                 }                  catch (SendIntentException e)                  {                     // Ignore the error.                 }                 break         }     } });該代碼運行良好,但是onActivityResult()始終會被跳過。無論用戶按Yes,No或back從Dialog,onActivityResult()不運行。我需要Android來撥打電話,onActivityResult()因此,如果用戶選擇不打開位置服務,則可以適當地處理它。Google的開發(fā)人員頁面(以及上面的代碼)明確表示onActivityResult()應調用該頁面。有人知道為什么它被跳過嗎?我也不知道這行的目的是:final LocationSettingsStates states = LocationSettingsStates.fromIntent(data);
查看完整描述

3 回答

?
30秒到達戰(zhàn)場

TA貢獻1828條經驗 獲得超6個贊

您需要將此添加到您的結果回調中:


case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:

    try {

        fragment.startIntentSenderForResult(status.getResolution().getIntentSender(), REQUEST_CHECK_SETTINGS, null, 0, 0, 0, null);

    } catch (IntentSender.SendIntentException e) {

        // Ignore the error.

    }

    break;

onActivityResult將在片段上被調用,您無需在活動中手動調用它。本質上是這樣startResolutionForResult工作的。


查看完整回答
反對 回復 2019-12-17
?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

如果您想讓結果返回片段而不是使用


startIntentSenderForResult(status.getResolution().getIntentSender(), REQUEST_CODE_LOCATION_SETTING, null, 0, 0, 0, null);

代替 status.startResolutionForResult(YourActivity, LOCATION_REQUEST);


使用上述方法只會將結果傳遞回您的片段。


查看完整回答
反對 回復 2019-12-17
  • 3 回答
  • 0 關注
  • 1151 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號