Flutter-geolocator: IOS13 рдкрд░ рднрд╡рд┐рд╖реНрдп рдХрднреА рд╣рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдЕрдкреНрд░реИрд▓ 2020  ┬╖  63рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Baseflow/flutter-geolocator

рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ

рдЬрдм рдореИрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдХрднреА рд╣рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЖрдИрдУрдПрд╕ рдХрд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдЕрдЧрд░ рдореИрдВ рдХреБрдЫ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ рд╣реВрдВ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╕рдордЭрд╛рдПрдВред

Future<Position> getCurrentPosition({
    LocationAccuracy accuracy = LocationAccuracy.best,
    GeolocationPermission geolocationPermission =
        GeolocationPermission.location,
  }) =>
      _geolocator.getCurrentPosition(
        desiredAccuracy: accuracy,
        locationPermissionLevel: geolocationPermission,
      );

рдкреЙрдбрдлрд╛рдЗрд▓:

config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
        '$(inherited)',

        ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
         'PERMISSION_LOCATION=1',
      ]

Info.plist:

    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Need location when in use</string>
    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
    <string>Always and when in use!</string>
    <key>NSLocationUsageDescription</key>
    <string>Older devices need location.</string>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>Can I haz location always?</string>

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

рдореИрдВрдиреЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рднреА рд╣реЛ рд░рд╣реА рд╣реИред

рдореЗрд░реА рдореЗрдирд┐рдлреЗрд╕реНрдЯ рд╕реНрдерд╛рди рдЕрдиреБрдорддрд┐рдпрд╛рдВ:

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдПрдХ рд╕реНрдерд┐рддрд┐ рд╡рд╛рдкрд╕ рдХрд░реЗрдВред

рдкреНрд░рдЬрдирди рдХрджрдо

рдмрд╕ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред GetCurrentPositionред

рд╕рдВрд╕реНрдХрд░рдг: 5.1.5ред

рдордВрдЪ:

  • [x]: рдЖрдИрдлреЛрди: рдЖрдИрдУрдПрд╕ (рдЖрдИрдУрдПрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛)
  • [x] :robot: Android (рдПрдВрдбреНрд░реЙрдЗрдб 10QkQ1.190828.002 рдХреЗ рд╕рд╛рде Xiaomi Pocophone F1 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕рдмрдХреЛ рдирдорд╕реНрддреЗ,

рдореБрдЭреЗ I (рдЖрдЦрд┐рд░рдХрд╛рд░) рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг 6.0.0-rc.1 рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ, рдЬрд┐рд╕реЗ рдЗрди рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд╛рд╣рдирд╛ рдХрд░реВрдВрдЧрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдЕрдкрдиреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рднреА 63 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдпрд╣ рдЖрдИрдУрдПрд╕ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рджреЛрдиреЛрдВ рдкрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ .....

рдореБрдЭреЗ рдЖрдИрдУрдПрд╕ 10.3 рдпрд╛ рдЖрдИрдУрдПрд╕ 13.4 рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдФрд░ рдЖрдИрдУрдПрд╕ 13.4 рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЖрдИрдкреИрдб рдкрд░ рднреА рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред

mycode.dart:

Position pos = await Geolocator()
              .getCurrentPosition(
                  locationPermissionLevel:
                      GeolocationPermission.locationWhenInUse,
                  desiredAccuracy: LocationAccuracy.high)

Info.plist:

<key>NSLocationAlwaysUsageDescription</key>
<string>Can I haz location always?</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Need location when in use</string>

рд╕рдВрд╕реНрдХрд░рдг: 5.3.1

рдПрдВрдбреНрд░реЙрдЗрдб 8.0 рдкрд░ рдореЗрд░реЗ рд▓рд┐рдП рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ред рдореИрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рд╕реАрдзреЗ 10-рд╕реЗрдХрдВрдб рдХрд╛ рдЯрд╛рдЗрдорд░ рд▓рд┐рдЦрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдлреЗрдВрдХрддрд╛ рд╣реИред

@brenoasm рдХреНрдпрд╛ рдЖрдк рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

@dammel рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдХрд┐рд╕реА рд╕реНрдерд╛рди рдХреЛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдиреВ рдЖрдЗрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ -> рд╕реНрдерд╛рди -> (рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВ рдлрд┐рд░ "рдХреЛрдИ рдирд╣реАрдВ")ред

@mvanbeusekom рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдг рдХрд┐рд╕реА рд╕реНрдерд╛рди рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ GPS рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдерд╛, рддреЛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

@mvanbeusekom рдореИрдВрдиреЗ рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ (рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдлреЛрди рдирд╣реАрдВ рд╣реИ)ред рдореИрдВрдиреЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ Android рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА рд╣реИ... рдореИрдВ рдЕрдкрдиреЗ Android рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдкрд╛рджрд┐рдд рдФрд░ рдЬреЛрдбрд╝реВрдВрдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдЕрд╕рд▓реА рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ ...

@mvanbeusekom рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╕рд┐рдореБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдЯрд┐рдк рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм рдлрд┐рд░ рд╕реЗ iPad (рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕) рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЖрдИрдУрдПрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдФрд░ рдЖрдИрдУрдПрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛, рдореБрдЭреЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ

рдореИрдВ рдЕрдкрдиреЗ рдорд╛рдорд▓реЗ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рдорд╕реНрдпрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░ рдЖрдИрдлреЛрди рджреЛрдиреЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╣реЛрддреА рд╣реИ (рдореИрдВ рдЕрдкрдиреА рдХреНрдпреВрдП рдЯреАрдо рдХреЗ рд╕рд╛рде рдРрдк рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрд╕реНрдЯрдлрд▓рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ), рд▓реЗрдХрд┐рди рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдФрд░ рдЖрдИрдУрдПрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рднреАред

рд╡рд┐рдзрд┐ 'getCurrentPosition' рдХрднреА-рдХрднреА рдПрдХ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд▓реМрдЯрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрд╢рд┐рд╢реЛрдВ рдХреЗ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдХреЗ рдмрд╛рдж рдпрд╣ рдХрд░рддреА рд╣реИред рдЬрдм рдореИрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдРрдк рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИред рд╕рдордп рдХреА рдЕрд╡рдзрд┐ рдХреЗ рдмрд╛рдж, рдЕрдЪрд╛рдирдХ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреА рд╣реИред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдРрдк рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрднреА-рдХрднреА рдкрд╣рд▓реА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рд╡рд┐рдзрд┐ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрддреА рд╣реИ ...

рдЕрддрд┐рд░рд┐рдХреНрдд рдиреЛрдЯ:

  1. рдпрджрд┐ рд╡рд┐рдзрд┐ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреА рд╣реИ рдФрд░ рдореИрдВ рдПрдХ рдЧрд░реНрдо рдкреБрдирдГ рд▓реЛрдб рдпрд╛ рдПрдХ рдЧрд░реНрдо рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╡рд┐рдзрд┐ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд░рд╣рддреА рд╣реИ
  2. рд╡рд┐рдзрд┐ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдлреЗрдВрдХрддреА рд╣реИ... рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк 'рдкреНрд░рддреАрдХреНрд╖рд╛' рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рдХреЗ рд▓рд┐рдП рд░реБрдХ рдЬрд╛рддреА рд╣реИ
  3. рдореИрдВрдиреЗ рдЬрд┐рдУрд▓реЛрдХреЗрдЯрд░ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИ
  4. рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Google рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ "рд╢рд╛рдпрдж рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╡рд┐рд░реЛрдз рд╣реИ ...?"ред рдирд╣реАрдВред рдореИрдВ Google рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИ
  5. рдордЬреЗ рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рд╣рдлреНрддреЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реБрдЖ...

рдореЗрд░рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг:

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[тЬУ] Flutter (Channel stable, v1.12.13+hotfix.9, on Linux, locale en_GB.UTF-8)

[тЬУ] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[тЬУ] Android Studio (version 3.6)
[тЬУ] IntelliJ IDEA Community Edition (version 2019.3)
[тЬУ] Connected device (2 available)

тАв No issues found!

рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди:

  1. рдореИрдВрдиреЗ 'getCurrentPosition' рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЬреЛрдбрд╝рд╛, рдФрд░ рдпрджрд┐ рдпрд╣ 'рд╢реВрдиреНрдп' рд▓реМрдЯрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдПрдХ рдЯрд╛рдЗрдорд░ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдмрд╛рд░-рдмрд╛рд░ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ ... рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдмрд╛рдж (рдХрднреА-рдХрднреА рд╕реЗрдХрдВрдб, рдХрднреА-рдХрднреА рдПрдХ рдорд┐рдирдЯ рднреА) рд╡рд┐рдзрд┐ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд▓реМрдЯрд╛рддреА рд╣реИ
  2. рдЕрдЧрд░ рдореБрдЭреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ 'getLastKnownPosition ()' рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ #375 рдФрд░ #386 рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ

рдпрд╣рд╛рдБ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, LG G6, Android 9.0.

рдХрднреА рд╣рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ред

рдПрдХ рдЕрдЬреАрдм рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдкрд░ рд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВ:
рдореИрдВ рд╡рд╣рд╛рдВ рд╕реНрдерд┐рддрд┐ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдРрдк рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВред рдЙрд╕рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдкреЛрдЬреАрд╢рди рд╕реЗрдВрд╕рд░ рдФрд░ рд╡рд╛рдИрдлрд╛рдИ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдореЛрдмрд┐рд▓ рдбреЗрдЯрд╛рдХрдиреЗрдХреНрд╢рди рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред
рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдореЗрдВ рд╕реНрдерд╛рди рдорд┐рд▓рддрд╛ рд╣реИред
рдЙрд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдореЗрд░реЗ рдРрдк рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореЗрд░рд╛ рдРрдк рдмрд╛рдж рдореЗрдВ рд╢реБрд░реВ рд╣реБрдЖ рдерд╛ рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рдерд╛)ред
рдЕрдЧрд░ рдореИрдВ рд╡рд╛рдИрдлрд╛рдИ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реВрдВ рдпрд╛ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░ рджреВрдВред

рдореЗрд░реЗ рдРрдк рдХреЗ рдЦреБрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдХрд┐рд╕реА рднреА рд╕рдордп рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ (рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдореБрдЭреЗ рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЦреЛрд▓рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред)
рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдХреБрдЫ рдРрд╕рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореИрдкреНрд╕ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдЬрд┐рд╕рдХреА рдЬрд░реВрд░рдд рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдХреЛ рд╣реЛрддреА рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ/рд╕реБрдзрд╛рд░ рдХрд░реЗрдВ:
рдпрд╣ рдФрд░ рднреА рдЬрдЯрд┐рд▓ рд╣реИ, Google рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдХреНрд░рд┐рдпрд╛ "рд╡рд╛рдВрдЫрд┐рдд рд╕рдЯреАрдХрддрд╛" рдХреЗ рд▓рд┐рдП рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рдИрдлрд╛рдИ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╕рдордп 2 рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ рдереАрдВ:

  • LocationAccuracy.best рдФрд░ LocationAccuracy.high рдЕрднреА рднреА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗ рд▓реЗрдХрд┐рди рдзреАрдореЗ рд╣реЛ рдЧрдП
  • LocationAccuracy.medium, LocationAccuracy.lower рдФрд░ LocationAccuracy.lowest рдЕрдм рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ, рдЙрди рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рднреА рд╕реНрдерд┐рддрд┐ рдкрдЯреНрдЯреА рдореЗрдВ рд╕реНрдерд╛рди рдкреНрд░рддреАрдХ рдХрднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрдерд╛рди рдХреЛ рд░реАрдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдм рд╣рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рддреЛ рдореБрдЭреЗ Google рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдпрд╣ рд╡рд░реНрдгрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

(рд╢рд╛рдпрдж рдХреБрдЫ рдорд╣рддреНрд╡рд╣реАрди, рдЕрд╕рдВрдмрдВрдзрд┐рдд, рдРрдк рдХреА рдПрдХ рдирдИ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рдЕрдиреБрдорддрд┐ рд╕рдВрд╡рд╛рдж рдЕрд▓рдЧ рджрд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ "рдлрд┐рд░ рд╕реЗ рди рдкреВрдЫреЗрдВ" -рдЪреЗрдХрдмреЙрдХреНрд╕ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдмрд╛рд░ рд╕рдВрд╡рд╛рдж рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж рдпрд╣ рд╣рдореЗрд╢рд╛ рд╣реЛрддрд╛ рд╣реИ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдВрд╡рд╛рдж)

рд╡рд╣реА рдореБрджреНрджрд╛, рдПрдВрдбреНрд░реЙрдЗрдб 10, рд╡рдирдкреНрд▓рд╕ 7 рдкреНрд░реЛред

рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдХреЗ рд╕рд╛рде рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЯреНрд░рд┐рдХ рдореЗрд░реЗ рдХрд╛рдо рдирд╣реАрдВ рдЖрдИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдореЗрд░реЗ рдмрд┐рдирд╛ рдХреБрдЫ рдЦрд╛рд╕ рдХрд┐рдП рд▓реЛрдХреЗрд╢рди рд╣рд▓ рд╣реЛрдиреЗ рд▓рдЧреАред рдореИрдВ рдмрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЦреЛрд▓реЗ рдЧрдП рдкреГрд╖реНрда рдХреЛ рдкрдврд╝ рд░рд╣рд╛ рдерд╛, рдлрд┐рд░ рдЕрдкрдиреЗ рдРрдк рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рдФрд░ рдПрдП рдбрд╛рдпрд▓реЙрдЧ рджреЗрдЦрд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рд╕реНрдерд╛рди рдмрддрд╛рдпрд╛ - рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рд▓ рд╣реЛрдиреЗ рдкрд░ рд╕рдВрд╡рд╛рдж рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╡рд╛рдж рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдВрддрддрдГ рдпрд╣ рд╣рд▓ рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛ . рдЙрд╕рдХреЗ рдмрд╛рдж рд▓реЛрдХреЗрд╢рди рд╣рд░ рдХреЛрд╢рд┐рд╢ рдкрд░ рдареАрдХ рд╣реЛ рд░рд╣реА рдереАред
рдЬреИрд╕рд╛ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рд░реАрдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрдерд╛рди рдЕрдм рд╣рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@SchmadenSchmuki рдХреЗ рд╕рдВрджреЗрд╢ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП, рдФрд░ рдпрд╣ рдореЗрд░рд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рд╣реИ: Google рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ рдЬреЛ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреНрд▓рдЧрдЗрди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрдирдХреЗ рдмреАрдЪ рдПрдХ рдЕрд╕рдВрдЧрддрд┐ рд╣реИред

рдЬрдм рдореИрдВ рдЗрд╕реЗ рдкрд╣рд▓реА рдмрд╛рд░ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдореЗрд░реЗ рдРрдк рдХрд╛ рдкреНрд░рд╡рд╛рд╣ рд╣реЛрддрд╛ рд╣реИ:

  1. рдпрд╣ рдПрдХ рд╕реНрдкреНрд▓реИрд╢ рд╕реНрдХреНрд░реАрди рджрд┐рдЦрд╛рддрд╛ рд╣реИ
  2. рдЗрд╕ рдмреАрдЪ, рдРрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ
  3. рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
  4. рдРрдк рд╕реНрдкреНрд▓реИрд╢ рд╕реНрдХреНрд░реАрди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдореИрдВ рдПрдХ рдирдХреНрд╢рд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╣рд╛рдВ рд╕реНрдерд┐рдд рд╣реИ

рдЗрд╕ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рд╛рде, рдРрдк рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдХреА 'getCurrentPosition ()' рд╡рд┐рдзрд┐ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдпрд╣ рдХрднреА рднреА рдХреЛрдИ рдорд╛рди рдирд╣реАрдВ рд▓реМрдЯрд╛рддреА рд╣реИред рдиреЛрдЯ: рд╡рд┐рдзрд┐рдпрд╛рдВ 'isLocationServiceEnabled ()' рдФрд░ 'getLastKnownPosition ()' рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЗрд╕рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реВрдВ:

  1. рд╕реНрдкреНрд▓реИрд╢ рд╕реНрдХреНрд░реАрди
  2. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
  3. рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░реЗрдВ
  4. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  5. рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рдХреИрдорд░реЗ рдХреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!!!!!

рддреЛ, рдореЗрд░рд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдпрд╣ рд╣реИ рдХрд┐, рдХрд┐рд╕реА рддрд░рд╣, Google рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд▓рдЧрдЗрди "рдХреБрдЫ" рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрддрд╛ рд╣реИ рдЬреЛ рднреМрдЧреЛрд▓рд┐рдХ рд╕реНрдерд╛рди рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрди рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИред рдЬрдм Google рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ "рдХреБрдЫ" рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╣рд░ рдХреЛрдИ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд░ рдХреЛрдИ рдФрд░ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реНрд▓рдЯрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ

@KnucklesEQ рд╡реНрдпрд╛рдкрдХ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рдЕрдкрдирд╛ рдЕрдзрд┐рдХ рд╕рдордп рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдФрд░ рдЙрдореНрдореАрдж рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдмрд┐рддрд╛рдКрдВрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣рд╛рдВ рдЕрдиреНрдп рд▓реЛрдЧ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рд╕рднреА рднреА Google рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдХрдо рд╕реЗ рдХрдо рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдореБрджреНрджреЗ рд╣реИрдВ (рдПрдВрдбреНрд░реЙрдЗрдб 9 + рдПрдВрдбреНрд░реЙрдЗрдб 10 рдХреЗ рдмреАрдЪ рдЕрдВрддрд░, рдЖрдИрдУрдПрд╕ рдХрднреА-рдХрднреА рдПрдХ рд╕реНрдерд╛рди рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕реЗрдХрдВрдб рд▓реЗрддрд╛ рд╣реИ, Google рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЬрд┐рдУрд▓реЛрдХреЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдФрд░ рдореИрдВ рдЙрди рд╕рднреА рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдореЗрд░реЗ рд╕рд╛рде рд░рд╣реЗрдВ, рдЬрдмрдХрд┐ рдореИрдВ рдЕрдкрдирд╛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЕрдкрдиреА рдкреНрд░рдЧрддрд┐ рдкрд░ рдЕрдкрдбреЗрдЯ рдпрд╣рд╛рдВ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдореИрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдХреЗрд╡рд▓ рдРрдк рдХреЗ рдЪрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╣реА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реВрдВ (рд▓реЛрдХреЗрд╢рдирд╡реНрд╣реЗрдирдЗрдирдпреВрдЬ), рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдореИрдВ рдкреВрдЫреВрдВрдЧрд╛ рддреЛ рдпрд╣ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧрд╛ рдФрд░ рдХрднреА рд╣рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдХреЗрд╡рд▓ рдПрдВрдбреНрд░реЙрдЗрдб, рдЖрдИрдУрдПрд╕ рдкрд░ рдпрд╣ рдХрднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рд╛ рд╣реИ)ред

рдореИрдВ Google рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

Google рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд▓рдЧрдЗрди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
(рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдкрд░ рдореИрдВрдиреЗ рдЬрд╛рдБрдЪ рдХреА рдХрд┐ рдХреНрдпрд╛ Google рдорд╛рдирдЪрд┐рддреНрд░ рдРрдк рдореЗрдВ рднреА рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╡рд╣рд╛рдБ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рдРрдк рдкрд░ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛)

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:
рд╕рдорд╕реНрдпрд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдирд┐рдореНрди рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рд╕рддреНрдп рд╣реИрдВ:

  • рдореИрдВ рд╕реНрдерд╛рди рдкреНрд░рдмрдВрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ (рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ ()ред ForceAndroidLocationManager = true)
  • рдореИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд╛рди рд╕рдЯреАрдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ LocationAccuracy.best . рд╣реИ
  • рдореИрдВ рдЕрдВрджрд░ рд╣реВрдВ

рдореИрдВрдиреЗ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдФрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реА 2 рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рддрд╣рдд рдЬреЛ рд╕реНрдерд╛рди рдкреНрд░рджрд╛рддрд╛ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд╣ 'рдЬреАрдкреАрдПрд╕' рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рд╕рд┐рд░реНрдл рдЬреАрдкреАрдПрд╕ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдЕрдВрджрд░ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдмрд╛рд▓рдХрдиреА рд╕реЗ рдмрд╛рд╣рд░ рдХрджрдо рд░рдЦрд╛ рдФрд░ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рд╣реА рдЪреАрдЬреЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧреАрдВред

рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рдХрд┐ рдпрд╣ рд╕реНрдерд╛рди рдкреНрд░рджрд╛рддрд╛ рдХреА рдкрд╕рдВрдж рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдкреНрд░рджрд╛рддрд╛ рдХреЛ 'рдиреЗрдЯрд╡рд░реНрдХ' (рд╣рд╛рд░реНрдбрдХреЛрдбрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛) рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рд╕реНрдерд╛рди рдкрд░ рд╕рдЯреАрдХрддрд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдирд╣реАрдВ рдереА - ~ 1080 рдореАрдЯрд░ред

@minusminuszero рд╕рд╣реА рд╣реИ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред
рддреЛ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╡рд╣реА рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд░реАрдмреВрдЯ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдЕрд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред
(рдореИрдВ рд╕реНрдерд╛рди рдкреНрд░рдмрдВрдзрдХ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд▓ рд╣реИAndroidLocationManager = рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЭреВрдард╛ред рдореИрдВ рд╕реНрдерд╛рди рд╕рдЯреАрдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдФрд░ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдерд╛рди рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЙрдЪреНрдЪ, рд╢рд╛рдпрдж рдХрдо рд╕рдЯреАрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реНрдерд╛рди рдкреНрд░рддреАрдХ рд╕реНрдерд┐рддрд┐ рдкрдЯреНрдЯреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред)

рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рдХрд╛ рднреА рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде (рдЕрдВрджрд░, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд╛рди рдПрд╕реАрд╕реА, рдЖрджрд┐)

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:
рд╕рдорд╕реНрдпрд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдирд┐рдореНрди рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рд╕рддреНрдп рд╣реИрдВ:

  • рдореИрдВ рд╕реНрдерд╛рди рдкреНрд░рдмрдВрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ (рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ ()ред ForceAndroidLocationManager = true)
  • рдореИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд╛рди рд╕рдЯреАрдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ LocationAccuracy.best . рд╣реИ
  • рдореИрдВ рдЕрдВрджрд░ рд╣реВрдВ

рдореИрдВрдиреЗ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдФрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реА 2 рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рддрд╣рдд рдЬреЛ рд╕реНрдерд╛рди рдкреНрд░рджрд╛рддрд╛ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд╣ 'рдЬреАрдкреАрдПрд╕' рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рд╕рд┐рд░реНрдл рдЬреАрдкреАрдПрд╕ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдЕрдВрджрд░ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдмрд╛рд▓рдХрдиреА рд╕реЗ рдмрд╛рд╣рд░ рдХрджрдо рд░рдЦрд╛ рдФрд░ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рд╣реА рдЪреАрдЬреЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧреАрдВред

рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рдХрд┐ рдпрд╣ рд╕реНрдерд╛рди рдкреНрд░рджрд╛рддрд╛ рдХреА рдкрд╕рдВрдж рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдкреНрд░рджрд╛рддрд╛ рдХреЛ 'рдиреЗрдЯрд╡рд░реНрдХ' (рд╣рд╛рд░реНрдбрдХреЛрдбрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛) рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рд╕реНрдерд╛рди рдкрд░ рд╕рдЯреАрдХрддрд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдирд╣реАрдВ рдереА - ~ 1080 рдореАрдЯрд░ред

рдЖрдк "рдиреЗрдЯрд╡рд░реНрдХ" рд╕реНрдерд╛рди рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдЧрдП? рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдШрд░ рдХреЗ рдЕрдВрджрд░ рд╣реЛрддрд╛ рд╣реИ

рдЖрдк "рдиреЗрдЯрд╡рд░реНрдХ" рд╕реНрдерд╛рди рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдЧрдП? рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдШрд░ рдХреЗ рдЕрдВрджрд░ рд╣реЛрддрд╛ рд╣реИ

рдореИрдВрдиреЗ рд╕реАрдзреЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреНрд▓рдЧрдЗрди рдХреЛрдб рдореЗрдВ рд╕реНрдерд╛рди рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдХреЛ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕рдЯреАрдХрддрд╛ рдХреЛ рдЪреБрдирдиреЗ рдХрд╛ рдПрдХ рд╣реА рдкреНрд░рднрд╛рд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред

рд╢рд╛рдпрдж рд╡рд┐рдзрд┐ рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкрд░рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдирд╣реАрдВ?

рдХреНрдпрд╛ рд╕реНрдкрдВрджрди/рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдЯреАрдо рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ?

рд╣рд╛рдБ рд╣рдо

рдзрдиреНрдпрд╡рд╛рдж @mvanbeusekom!
рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕реНрд░реЛрдд рдХреНрдпрд╛ рд╣реИ?
рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕реЗ (рдпрд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди) рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдорд┐рд▓рд╛ рд╣реИ?
(4.0.3 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ)

рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдХрд┐рд╕реА рд╕реНрдерд╛рди рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдиреВ рдЖрдЗрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ -> рд╕реНрдерд╛рди -> (рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВ рдлрд┐рд░ "рдХреЛрдИ рдирд╣реАрдВ")ред

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдмрдЧ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдпрд╛ рдХреБрдЫ рднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдХрд┐рд╕реА рд╕реНрдерд╛рди рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдиреВ рдЖрдЗрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ -> рд╕реНрдерд╛рди -> (рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВ рдлрд┐рд░ "рдХреЛрдИ рдирд╣реАрдВ")ред

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдмрдЧ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдпрд╛ рдХреБрдЫ рднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рд╛рдБ, рдореЗрд░реЗ рд▓рд┐рдП рднреАред
рдХреГрдкрдпрд╛ рд╕реНрдерд╛рди рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджреЗрдВ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рд╕реНрдерд╛рди рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж :)

рдореБрдЭреЗ рдЖрдИрдУрдПрд╕ рдкрд░ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдореИрдВ рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдРрдк рд╣реИ рдЬреЛ getLocationStream рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдореИрдВ рдЙрд╕ рдЯреИрдм рдкрд░ рдирд╣реАрдВ рдЬрд╛рддрд╛ рдЬрд╣рд╛рдВ рдореЗрд░реЗ рдкрд╛рд╕ Google рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИ, рддрдм рддрдХ рдореБрдЭреЗ рдЕрдиреБрдорддрд┐ рд╕рдВрд╡рд╛рдж рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдРрдк рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рдЕрдм Google рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдкреНрд▓рдЧрдЗрди рдХреЛ рд╣рдЯрд╛рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдФрд░ рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдореИрдВрдиреЗ рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдкреНрд▓рдЧрдЗрди рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдм рдпрд╣ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░, рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рдордиреЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдмрдирд╛рдиреЗ рдФрд░ рдПрдХ рд╕рд╛рде рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИред

рдЬрд┐рди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рд╡реЗ рд╣реИрдВ:

  • рдЕрдиреБрдорддрд┐ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд░реЗрдВ;
  • рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ getCurrentLocation рдЙрдЪрд┐рдд рд╕рдордп рдХреЗ рднреАрддрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;
  • getCurrentLocation рдФрд░ getPositionStream рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЬреЛрдбрд╝реЗрдВ, рддрд╛рдХрд┐ рдпрджрд┐ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧреЗ рддреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЕрдиреБрд░реЛрдз рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдк рдЕрдиреБрд░реЛрдз рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;
  • рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░;
  • рдлрд╝реЗрдбрд░реЗрдЯреЗрдб рдкреНрд▓рдЧрдЗрди рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдЬрд╛рдПрдБ рддрд╛рдХрд┐ рд╣рдо рд╡реЗрдм рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдВ;
  • Android v2 рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ;

рдкрд╣рд▓рд╛ рдХрджрдо рдпрд╣ рдерд╛ рдХрд┐ рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП (рдЬреЛ рдЕрдм pub.dev рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред

рджреВрд╕рд░рд╛ рдЪрд░рдг рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдбрд╛рд░реНрдЯ рдХреЛрдб рдмрдирд╛рдирд╛ рдФрд░ рдпреВрдирд┐рдЯ-рдЯреЗрд╕реНрдЯ рдХрд░рдирд╛ рдерд╛, рдЬреЛ рдЕрдм рддреИрдпрд╛рд░ рд╣реИ рдФрд░ рдЗрд╕реЗ рдлрд╝реЗрдбрд░реЗрдЯреЗрдб_рдкреНрд▓рдЧрд┐рди рд╢рд╛рдЦрд╛ рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд▓рд╛ рдХрджрдо рдЖрдИрдУрдПрд╕ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдРрдк рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╣реИред рдореИрдВ рдЕрднреА рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдиреЗ рд╡рд╛рд▓реЗ рджреЛ рд╣рдлреНрддреЛрдВ рдореЗрдВ рдореИрдВ рд╕рдм рдХреБрдЫ рдЦрддреНрдо рдХрд░ рд╕рдХреВрдВрдЧрд╛ (рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдореБрдЭреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рднреА рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ;))ред

рд╡реИрд╕реЗ рднреА рдореИрдВ рд╕рднреА рдХреЛ рд╡рд╣рд╛рдВ рдзреИрд░реНрдп рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреГрдкрдпрд╛ рдереЛрдбрд╝реА рджреЗрд░ рдФрд░ рд░реБрдХреЗрдВред

@mvanbeusekom
рдпреЗ рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЖрдк рд╣рдореЗрдВ рдпрд╣ рдкреНрд▓рдЧрдЗрди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓ рд░рд╣реЗ рд╣реИрдВред

рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрджреНрдпрддрди рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реВрдВред

рдзрдиреНрдпрд╡рд╛рдж рдПрд╡рдВ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ

рдЕрдЪреНрдЫрд╛! рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдпрд╣ рдХрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХреЗрдВред

рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЖрдк рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рдирд╕реНрдЯреИрдЯрд╕ checkGeolocationPermissionStatus() рд╡рд┐рдзрд┐ рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╕реНрдерд╛рди рдмрдВрдж рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рдзрд┐ "рдЕрдХреНрд╖рдо" рд▓реМрдЯрд╛рддреА рд╣реИред рдлрд┐рд░ рдЖрдкрдХреЛ getCurrentPosition() рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЙрджрд╛рд╣рд░рдг:

  Future<Position> getCurrentPosition() async {
    Position position;
    GeolocationStatus status = await _geolocator.checkGeolocationPermissionStatus(); 

    if (status != GeolocationStatus.disabled) {
      position = await _geolocator.getLastKnownPosition();

      if (position == null && status == GeolocationStatus.granted) {
        position = await _geolocator.getCurrentPosition(
          desiredAccuracy: LocationAccuracy.high,
          locationPermissionLevel: GeolocationPermission.locationWhenInUse,
        );
      }
    }

    return position;
  }

рдпрд╣рд╛рдВ рдереЛрдбрд╝рд╛ рдЕрдкрдбреЗрдЯ, рдЖрдЬ рд╕реБрдмрд╣ рдореИрдВрдиреЗ рдПрдХ рдирдП рдЕрдкрдбреЗрдЯ рдХреЛ рдлрд╝реЗрдбрд░реЗрдЯреЗрдб_рдкреНрд▓рдЧрд┐рди рд╢рд╛рдЦрд╛ рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝реНрд▓рдЯрд░ рдЙрджрд╛рд╣рд░рдг рдРрдк рд╕рд╣рд┐рдд рдЖрдИрдУрдПрд╕ рдкрд░ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╣рдордиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рднреА рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрдорддрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдЕрдм рдЕрдиреБрд░реЛрдз рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕реНрдерд╛рди рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВрдЧреЗред

рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдРрдк рдореЗрдВ рд╣реИ рдФрд░ рдЖрдИрдУрдПрд╕ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рднреА рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВ рд╕рднреА рдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рдЧрддрд┐ рд╣реЛ рд░рд╣реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдЖрдкрдХреЗ рд╕рднреА рдзреИрд░реНрдп рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред

рдпрд╣рд╛рдВ рдереЛрдбрд╝рд╛ рдЕрдкрдбреЗрдЯ, рдЖрдЬ рд╕реБрдмрд╣ рдореИрдВрдиреЗ рдПрдХ рдирдП рдЕрдкрдбреЗрдЯ рдХреЛ рдлрд╝реЗрдбрд░реЗрдЯреЗрдб_рдкреНрд▓рдЧрд┐рди рд╢рд╛рдЦрд╛ рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝реНрд▓рдЯрд░ рдЙрджрд╛рд╣рд░рдг рдРрдк рд╕рд╣рд┐рдд рдЖрдИрдУрдПрд╕ рдкрд░ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╣рдордиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рднреА рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрдорддрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдЕрдм рдЕрдиреБрд░реЛрдз рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕реНрдерд╛рди рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВрдЧреЗред

рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдРрдк рдореЗрдВ рд╣реИ рдФрд░ рдЖрдИрдУрдПрд╕ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рднреА рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВ рд╕рднреА рдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рдЧрддрд┐ рд╣реЛ рд░рд╣реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдЖрдкрдХреЗ рд╕рднреА рдзреИрд░реНрдп рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред

рдЗрд╕ рдкрд░ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде pub.dev рдкрд░ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреИрдХреЗрдЬ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдлрд╝рд╛рдЗрд▓ рднреА рд╣реИ: position_updates_example_widget.dart?

рдЗрд╕ рдкрд░ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде pub.dev рдкрд░ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреИрдХреЗрдЬ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдлрд╝рд╛рдЗрд▓ рднреА рд╣реИ: position_updates_example_widget.dart?

рдирд╣реАрдВ, рдореИрдВ рдЕрднреА рддрдХ pub.dev рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдпрд╣ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдПрдХ рд╕рдВрдкреВрд░реНрдг рдкреБрдирд░реНрд╡рд┐рдХреНрд░рдп рд╣реИ рдФрд░ рдЕрднреА рддрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ Android рдФрд░ рдкреНрд░рд▓реЗрдЦрди рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдЗрд╕реЗ pub.dev рдкрд░ рдЬрд╛рд░реА рдХрд░ рджреВрдВрдЧрд╛ред

рд╣рд╛рдБ рдпрд╣ рд╡рд┐рдЬреЗрдЯ рдЙрджрд╛рд╣рд░рдг рдРрдк рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рд╕реБрди рд╕рдХрддреЗ рд╣реИрдВред

рдирдорд╕реНрддреЗ,

рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ Android рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдореМрдХрд╛?

рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди?

рдкрд╣рд▓реА рдмрд╛рд░ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдкрд░ рдХреЗрд╡рд▓ рд▓реЛрдХреЗрд╢рди рд▓реИрдЧрд┐рдВрдЧ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред

рдкреБрди: рдХрд╛рд░реНрдп рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? @mvanbeusekom

@ dalmia007 , рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рдХреЛрдИ рддрд╛рд░реАрдЦ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдкреНрд░рдЧрддрд┐ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред рдореИрдВрдиреЗ feature/federated_android рд╢рд╛рдЦрд╛ рдкрд░ Android рдХреЗ рд▓рд┐рдП рдЕрд▓реНрдкрд╡рд┐рдХрд╕рд┐рдд рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдлрд╝реНрдпреВрдЬреНрдб рд▓реЛрдХреЗрд╢рди рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреНрд▓рд╛рдЗрдВрдЯ (Google Play рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдорддрд┐ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛, рдЕрдВрддрд┐рдо рдЬреНрдЮрд╛рдд рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдФрд░ рд╕реНрдерд╛рди рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдореИрдВ рдЕрднреА рднреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд┐рд╢рд┐рд╖реНрдЯ:

  • Google Play рд╕реЗрд╡рд╛рдПрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЙрдкрд░реЛрдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди;
  • рд╕реНрдерд╛рди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рдХреНрд╖рдо рди рд╣реЛрдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░реЗрдВ;

рдЖрдо:

  • рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдмреЗрдЭрд┐рдЭрдХ рдЗрд╕реЗ рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ

@mvanbeusekom рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ

рд╕рдмрдХреЛ рдирдорд╕реНрддреЗ,

рдореБрдЭреЗ I (рдЖрдЦрд┐рд░рдХрд╛рд░) рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг 6.0.0-rc.1 рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ, рдЬрд┐рд╕реЗ рдЗрди рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд╛рд╣рдирд╛ рдХрд░реВрдВрдЧрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдЕрдкрдиреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм рджреЛ рдмрд╛рд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 4.0.3 рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

E/AndroidRuntime(19881): java.lang.RuntimeException: Failure delivering result ResultInfo{who=<strong i="6">@android</strong>:requestPermissions:, request=24, result=-1, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {com.packagename.consumer.app/com.packagename.consumer.app.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void com.baseflow.geolocator.permission.PermissionResultCallback.onResult(com.baseflow.geolocator.permission.LocationPermission)' on a null object reference

рд╣реБрдЖ рдЬрдм рдореИрдВрдиреЗ рд╕рдВрд╡рд╛рдж рдкрд░ рдЕрдиреБрджрд╛рди рдХреА рдЕрдиреБрдорддрд┐ рджреА рдФрд░ рдЬрдм рдореИрдВрдиреЗ рдЗрдирдХрд╛рд░ рдХрд┐рдпрд╛ рддреЛ рднреА рджрдмрд╛ рджрд┐рдпрд╛ред рдЕрдЧрд░ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖрдпрд╛ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред

@Dohmanlechx рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╣ 6.0.0-rc.x рдпрд╛ 5.3.2 рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдорд┐рд▓рд╛ рд╣реИ?

рдореБрдЭреЗ рдпрд╣ 6.0.0-rc.1 рдкрд░ рдорд┐рд▓рд╛ (рдЖрдИрдбреАрдИ рдиреЗ рдореБрдЭреЗ 5.3.2+2 , FYI рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдЕрдкрдбреЗрдЯ" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛)

@Dohmanlechx рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдореБрдЭреЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реАред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрди рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓ рд░рд╣реА рд╣реИ (рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЕрдиреБрдорддрд┐_рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ requestCode == 24 рдЬреЛ рдХрд┐ рдЕрдиреБрдорддрд┐_рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕рдорд╛рди рд╣реИ) рдЬреЛ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдХреЛ рдХреЗрд╡рд▓ рдЙрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдореИрдВ рдЖрдЬ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рдПрдХ рдирдпрд╛ рд░рд┐рд▓реАрдЬ рдЙрдореНрдореАрджрд╡рд╛рд░ рдЬрд╛рд░реА рдХрд░реВрдВрдЧрд╛ред

рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдУрд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо permission_handler рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдЪреНрдЫрд╛ рдЦреЛрдЬ!

рд╕рд╛рд░рд╛ рд╢реНрд░реЗрдп рдЖрдкрдХреЛ рдЬрд╛рддрд╛ рд╣реИ @Dohmanlechx ;)ред рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕ рдмрдЧ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдФрд░ рдЬрд▓реНрдж рд╣реА рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред

@Dohmanlechx рдореИрдВрдиреЗ рдЕрднреА рд╕рдВрд╕реНрдХрд░рдг 6.0.0-rc.3 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрднрд╡ рдХреА рдЧрдИ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛, рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛, рд╕реНрдерд╛рди рджреЗрдирд╛ рдФрд░ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛, рд╕реНрдерд╛рди рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдореЗрд░реЗ рдЕрд╕рд▓реА рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рднреА рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ред

рд▓реЗрдХрд┐рди рдЖрдИрдУрдПрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рд┐рд╕реНрдЯрдо рдЕрдиреБрд░реЛрдз рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ, рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ? рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдХреНрд░реИрд╢ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдРрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рд▓реЛрдХреЗрд╢рди рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрднреА рднреА рдПрдХреНрд╕рдХреЛрдб рдХрдиреЗрдХреНрд╢рди рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдореЗрд░реЗ рдЖрдИрдлреЛрди рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ рдФрд░ рдореИрдВ рдЕрднреА рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрд╕реНрдЯрдлрд▓рд╛рдЗрдЯ рдореЗрдВ рдПрдХ рдмрд┐рд▓реНрдб рдХреЛ рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЬреИрд╕реЗ рд╣реА рдореИрдВрдиреЗ iPhone рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдВрдЧрд╛ред

рд▓реЗрдХрд┐рди рдЕрднреА рддреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ!

@Dohmanlechx рдХреЗ рд╡реНрдпрд╛рдкрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ!

рдкреНрд▓рдЧрдЗрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдИрдУрдПрд╕ рдкрд░ рд╕реЗрд╡рд╛ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ) рдПрдкреАрдЖрдИ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣рд╛рдВ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реЗрдЯрд┐рдВрдЧ рдРрдк рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ ( openAppSettings() рдпрд╛ openLocationSettings() рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ)ред рдореИрдВрдиреЗ рдЗрд╕реЗ README.md рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд░реВрдк рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдЦреЗрдж рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдореЗрд░реЗ iPhone XS Max, OS 13.6.1 рдкрд░ рдПрдХ рдЖрдкрджрд╛ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдкрд╣рд▓реА рдмрд╛рд░ рд╕реНрдерд┐рддрд┐ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛, рд╕рд╣реА рд╕реНрдерд┐рддрд┐ рд▓реМрдЯрд╛рдИ рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЕрднреА рднреА 7-8 рд╕реЗрдХрдВрдб рд▓рдЧ рдЧрдПред

рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдмрд╛рд░ рдФрд░ рдЖрдЧреЗ рд╕реЗ рдпрд╣ рддреБрд░рдВрдд рдлреЗрдВрдХрддрд╛ рд░рд╣рд╛ред рдореБрдЭреЗ Exception err рд╕реЗ dynamic err рдореЗрдВ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ рдХреНрдпреЛрдВрдХрд┐:
_ рд╣реИрдВрдбрд▓ рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЕрдкрд╡рд╛рдж: '_TypeError' рдЯрд╛рдЗрдк рдХрд░реЗрдВ 'рдЕрдкрд╡рд╛рдж' рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдк-рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИ _.

рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрдм рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ (рдкрд╣рд▓реА рдмрд╛рд░ рд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж):

2020-08-26 14:01:45.670206+0200 рдзрд╛рд╡рдХ[4565:206487] рд╕реНрдкрдВрджрди: рд╕реНрдерд╛рди рдирд╣реАрдВ рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрд╛: рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐: рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ
2020-08-26 14:01:45.670416+0200 рдзрд╛рд╡рдХ[4565:206487] рд╕реНрдкрдВрджрди: рд╕реНрдерд╛рди рдирд╣реАрдВ рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрд╛: 'NoLocationFoundException' рдХрд╛ рдЙрджрд╛рд╣рд░рдг

( NoLocationFoundException рдореЗрд░реА рдХрд╕реНрдЯрдо рдХреНрд▓рд╛рд╕ рд╣реИ)

_рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐: рдХреЛрдИ рднреА рддрддреНрд╡_ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдмрддрд╛ рд░рд╣рд╛ рд╣реИ... рдиреАрдЪреЗ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ:

static Future<void> _getUserLocation({bool isSneaky = false}) async {

  void _throw(dynamic err) {
    print("Could not fetch location: $err");
    if (!isSneaky) Fluttertoast.showToast(msg: getTranslation("location_fetch_error"));
    throw NoLocationFoundException();
  }

  await GeolocatorPlatform.instance
      .getCurrentPosition(
        desiredAccuracy: LocationAccuracy.high,
        timeLimit: const Duration(seconds: _TIMEOUT_DELAY),
      )
      .then((position) => _userLatestPosition = position)
      .catchError(
    (err) {
      // Debug only, remove later
      Fluttertoast.showToast(msg: "error: $err");

      if (err is TimeoutException) {
        GeolocatorPlatform.instance.getLastKnownPosition().then((position) {
          if (position == null) _throw(err);
          return position;
        }, onError: (err) {
          _throw(err);
        });
      } else if (err is PermissionDeniedException) {
        XxlPermissionsHandler.request(Permission.location);
      } else {
        _throw(err);
      }
    },
  ).catchError((err) => _throw(err));
}

рдореБрдЭреЗ рдкреВрд░реА рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ iPhone рдкрд░ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@Dohmanlechx , рд╡реНрдпрд╛рдкрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА рд╣реИред рдЕрдм рдореБрдЭреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ;)

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ getCurrentPosition рд╡рд┐рдзрд┐ getPositionStream рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ рдФрд░ рдкрд╣рд▓рд╛ рддрддреНрд╡ рд▓реЗрддреА рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реНрдЯреНрд░реАрдо рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ getPositionStream рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХреЛрдб рд╣реИ:

    if (_positionStream != null) {
      return _positionStream;
    }

рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рджреВрд╕рд░реА рдмрд╛рд░ getCurrentPosition рдкрд░ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп Bad state: No element рдЕрдкрд╡рд╛рдж рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдмрдВрдж рд╕реНрдЯреНрд░реАрдо рдкрд░ first рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЬрд▓реНрдж рд╣реА рдПрдХ рдирдпрд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рдЬрд╛рд░реА рдХрд░реВрдВрдЧрд╛ред

@Dohmanlechx , рдЖрдк рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ "рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐: рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ" рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ 6.0.0-rc.4 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдХрд┐ getCurrentPosition рдПрдХ рдирдИ рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рдЬрдм рдЖрдк рдЗрд╕реЗ рджреВрд╕рд░рд╛ (рдФрд░ рдмрд╛рдж рдореЗрдВ) рд╕рдордп рдХрд╣рддреЗ рд╣реИрдВред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдПрдХ рдФрд░ рдХреЛрд╢рд┐рд╢ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЬрд┐рд╕ рдмрд╛рдд рдкрд░ рдореИрдВрдиреЗ рдЧреМрд░ рдХрд┐рдпрд╛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд╕реАрдзреЗ GeolocatorPlatform.instance.<some_method> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдРрд╕рд╛ рдХрд░рдХреЗ рдЖрдк geolocator рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реНрдерд┐рдд рдХрд┐рд╕реА рднреА рддрд░реНрдХ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╕реАрдзреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ geolocator_platform_instance рдореЗрдВ рд╣реИ geolocator рдкреИрдХреЗрдЬ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкрд╛рд╕ рди рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдпрджрд┐ рдЖрдк рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреИрдХреЗрдЬ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕реАрдзреЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

import 'package:geolocator/geolocator.dart';

final position = await getCurrentPosition();

рдпрджрд┐ рдЖрдк рдЯрдХрд░рд╛рд╡ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ рдпрд╛ рдХреЗрд╡рд▓ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЙрдкрд╕рд░реНрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЖрдпрд╛рдд рдореЗрдВ рдПрдХ рдЙрдкрдирд╛рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:

import 'package:geolocator/geolocator.dart' as geolocator;

final position = await geolocator.getCurrentPosition();

рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЛрдб рднреА рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред

рджреБрд░реНрдШрдЯрдирд╛ рдЕрдм рджреВрд░ рд╣реЛ рдЧрдИ рд╣реИ рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдЕрднреА рднреА рдмрд╣реБрдд рдЕрд╕реНрдерд┐рд░ рд╣реИред 10 рдореЗрдВ рд╕реЗ 3 рдмрд╛рд░ рдпрд╣ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд╢ рдпрд╣ 10 рдореЗрдВ рд╕реЗ 10 рдмрд╛рд░ рд╣реЛрддрд╛), рд▓реЗрдХрд┐рди 10 рдореЗрдВ рд╕реЗ 7 рдмрд╛рд░ рд╕рдордп рд╕реАрдорд╛ (10 рд╕реЗрдХрдВрдб) рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ getCurrentPosition() рд╕реНрдкреИрдорд┐рдВрдЧ рдХрд░рддреЗ рд╣реБрдП рдЕрдкрдиреЗ iPhone рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдерд╛? рдореИрдВрдиреЗ iPhone XS Max, OS 13.6.1 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред

_4.0.3_ рдзреАрдорд╛ рд▓реЗрдХрд┐рди рд╕реНрдерд┐рд░ рд╣реИ
_6.0.0-rc.4_ рддреЗрдЬ рд▓реЗрдХрд┐рди рдЕрд╕реНрдерд┐рд░ рд╣реИ

рд▓реЗрдХрд┐рди рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдХреЛрдИ рдЖрдкрджрд╛ рдирд╣реАрдВ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рд╕рдВрд╕реНрдХрд░рдг 4.0.3 рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреА рд╕рдордп рд╕реАрдорд╛ рд▓рд┐рдЦреА рд╣реИред

@Dohmanlechx рдХреЛ рдпрд╣ рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рджреБрд░реНрдШрдЯрдирд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рд╣реИ;)

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд┐ рдЖрдк рдЕрднреА рднреА рдзреАрдореЗ рдЕрдкрдбреЗрдЯ рдХреНрдпреЛрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдбреЗрдореЛ рдРрдк рдмрдирд╛рдпрд╛ рд╣реИ:

рдореБрдЦреНрдп рдбрд╛рд░реНрдЯ:

import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  <strong i="10">@override</strong>
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  List<Position> _positions = <Position>[];

  <strong i="11">@override</strong>
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: Scaffold(
        body: ListView.builder(
          itemCount: _positions.length,
          itemBuilder: (BuildContext context, int index) {
            return ListTile(title: Text(_positions[index].toString()),);
          },),
        floatingActionButton: FloatingActionButton(
          child: Icon(Icons.add),
          onPressed: () => getCurrentPosition().then((position) {
            setState(() {
              _positions.add(position);
            });
          }),
        ),
      ),
    );
  }
}

Info.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>$(DEVELOPMENT_LANGUAGE)</string>
    <key>CFBundleExecutable</key>
    <string>$(EXECUTABLE_NAME)</string>
    <key>CFBundleIdentifier</key>
    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>geolocator_issue</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>$(FLUTTER_BUILD_NAME)</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>$(FLUTTER_BUILD_NUMBER)</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>UILaunchStoryboardName</key>
    <string>LaunchScreen</string>
    <key>UIMainStoryboardFile</key>
    <string>Main</string>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UIViewControllerBasedStatusBarAppearance</key>
    <false/>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>The example App requires access to the device's location.</string>
</dict>
</plist>

рддреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдПрдХреНрд╢рди рдмрдЯрди рджрдмрд╛рддрд╛ рд╣реВрдВ рддреЛ getCurrentPosition рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо ListView рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд iPhone 7, рдореЗрд░реА рдкрддреНрдиреА рдХреЗ iPhone 6 рдФрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ (рд╕рднреА рдирд╡реАрдирддрдо iOS рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ) рдкрд░ рдЗрд╕ рдРрдк рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдмрдЯрди рдХреЛ рд╕реНрдкреИрдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕реНрдерд╛рди рд▓рдЧрднрдЧ рддреБрд░рдВрдд рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИрд░рд╛рди рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рдЕрдиреБрднрд╡ рдХреНрдпреЛрдВ рд╣реИред рд╢рд╛рдпрдж рдЖрдк рдЗрд╕ рдирдореВрдирд╛ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрднреА рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рджреГрдврд╝рддрд╛ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдФрд░ рдЖрдкрдХреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдмрдЯрди рдХреЛ рд╕реНрдкреИрдо рдХрд░рдХреЗ iPhone рд╕реНрдХреНрд░реАрди рдХреЛ рд▓рдЧрднрдЧ рддреЛрдбрд╝ рджрд┐рдпрд╛, рд╕реНрдерд╛рди рд╣рд░ рд╕рдордп рддреБрд░рдВрдд рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ред рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдХрд▓ рдореИрдВ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕рдХреА рд╢реБрд░реБрдЖрдд рд╕реАрдзреЗ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ getCurrentPosition() рдЪрд▓рд╛рдиреЗ рд╕реЗ рд╣реЛрдЧреА рдФрд░ рдлрд┐рд░ рдЕрдкрд░рд╛рдзреА рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдкрдиреЗ рдЗрдЪреНрдЫрд┐рдд рд╕реНрдерд╛рди рддрдХ рдЖрдЧреЗ рдФрд░ рдЖрдЧреЗ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреБрдорддрд┐ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рджреЗрдЦреЗрдВрдЧреЗред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рджрдпрд╛рд▓реБ рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдореБрджреНрджрд╛ рд╣реА рдерд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрд╛рд░ рдЕрдЪреНрдЫрд╛ рд╣реЛрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛;)

рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рдореИрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

getCurrentPosition().then((position) {
   print(position);
}).catchError((err) {
   print(err);
});

рдЗрд╕реЗ рд╕реАрдзреЗ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдЖрдЬрд╝рдорд╛рдпрд╛ рдФрд░ рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛, рддреЛ рдХрдВрд╕реЛрд▓ рдкрд░ рдПрдХ рд╕реНрдерд╛рди рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛! рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░рд╛ рдХреЛрдб рд╣реИред рддреЛ рдпрд╣ рдЕрдм рд╣рдо рдкрд░ рд╣реИ, рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ _рдХрднреА-рдХрднреА рд╕реНрдерд┐рддрд┐ рд▓рд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╣реЛрддрд╛ рд╣реИ:

I/flutter (  393): тХРтХРтХб EXCEPTION CAUGHT BY SERVICES LIBRARY тХЮтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХР
I/flutter (  393): The following PlatformException was thrown while de-activating platform stream on channel
I/flutter (  393): flutter.baseflow.com/geolocator_updates:
I/flutter (  393): PlatformException(error, No active stream to cancel, null)
I/flutter (  393): 
I/flutter (  393): When the exception was thrown, this was the stack:
I/flutter (  393): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:572:7)
I/flutter (  393): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161:18)
I/flutter (  393): <asynchronous suspension>
I/flutter (  393): #2      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:334:12)
I/flutter (  393): #3      EventChannel.receiveBroadcastStream.<anonymous closure> (package:flutter/src/services/platform_channel.dart:554:29)
I/flutter (  393): #4      EventChannel.receiveBroadcastStream.<anonymous closure> (package:flutter/src/services/platform_channel.dart:551:18)
I/flutter (  393): #18     MethodChannelGeolocator.getPositionStream.<anonymous closure> (package:geolocator_platform_interface/src/implementations/method_channel_geolocator.dart:135:13)
I/flutter (  393): (elided 24 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
I/flutter (  393): тХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХРтХР

@mvanbeusekom рдореИрдВ рдирд╡реАрдирддрдо 6.0.0+1 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВред рдЖрдИрдУрдПрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░, рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдПрдкреАрдЖрдИ 29, рднреМрддрд┐рдХ рд╡рдирдкреНрд▓рд╕ 6 рдкрд░ рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИред рд╣рд░ рдмрд╛рд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

image

image

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдореИрдВ рдпрд╣рд╛рдВ рдФрд░ рдХреНрдпрд╛ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ, getCurrentPosition рдЯрд╛рдЗрдордЖрдЙрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдпрд╛ рдЕрдЧрд░ timeLimit рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рддреЛ рдмрд╕ рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рди рд╕рдЯреАрдХрддрд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдпрд╣ рдореБрджреНрджрд╛ рд╣реИ?

рд╕рдВрд╕реНрдХрд░рдг 5.3.2+2 рдЖрдИрдУрдПрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ (рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╕реНрдЯрдо рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде), рдПрдВрдбреНрд░реЙрдЗрдб рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

@mvanbeusekom , рдореИрдВрдиреЗ рдЗрди рд╕рднреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рд╛ рд╣реИ, рдФрд░ рдореИрдВ 10 рд╕реЗрдХрдВрдб рдХреА рджреЗрд░реА рдХреЗ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд╢рд╛рдпрдж рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдореИрдВ рдЕрдм рдирдП рд╕рдВрд╕реНрдХрд░рдг (рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ) рдореЗрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╢рд╣рд░ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛ (рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ):

Position userLocation;
List<Placemark> listAddresses = [];
if(permission.toString() != "PermissionStatus.granted"){
        listAddresses = await placemarkFromAddress("$city, $state");
         userLocation = listAddresses[0].position;
    }else{
getCurrentPosition...
}

рдЕрдм, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ _placemarkFromAddress_ рдХреЛ _ locationFromAddress _ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реВрддреНрд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:

Position userLocation;
List<Location> listAddresses = [];
if(permission.toString() != "PermissionStatus.granted"){
        listAddresses = await locationFromAddress("$city, $state");
         userLocation = listAddresses[0].position;
    }else{
getCurrentPosition...
}

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ:

A value type 'Location' can't be assigned to a variable of type 'Position'.

рдореИрдВ рд╕реНрдерд╛рди рдХреЛ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреИрд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╛ рдЕрдВрдд рдореЗрдВ, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЕрдм рдЙрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЙрд╕рдХреЗ рд╢рд╣рд░ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛, рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

CNogueira92 picture CNogueira92  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JunjaK picture JunjaK  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

estevez-dev picture estevez-dev  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

shrishti08 picture shrishti08  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

prasant10050 picture prasant10050  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ