Flutter-geolocator: рдХреЗрд╡рд▓ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд╕реНрдерд╛рди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдЕрдХреНрддреВре░ 2020  ┬╖  28рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Baseflow/flutter-geolocator

рдлрд╝реАрдЪрд░ рдЕрдиреБрд░реЛрдз

рд╕рдмрдХреЛ рд╕реБрдкреНрд░рднрд╛рдд! Google рдиреЗ рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ рдЕрдиреБрдорддрд┐рдпрд╛рдВ рдФрд░ рд╕реНрдерд╛рди рдЕрдиреБрдорддрд┐рдпрд╛рдВ рдиреАрддрд┐рдпрд╛рдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ Google Play рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрд╛рд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдирдИ рдиреАрддрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕реНрдерд╛рди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреА рд╣реИ: рдХреЗрд╡рд▓ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд╕реНрдерд╛рди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЕрдм рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ ACCESS_BACKGROUND_LOCATION рдЕрдиреБрдорддрд┐ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдФрд░ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ

рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирдИ рдиреАрддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдкрдбреЗрдЯ рдХреЛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
Background location access not declared We detected that your app contains at least one feature that requests background location access, however you have not submitted a permission declaration form for this feature. Please log in to your Play Console and submit a declaration form.

рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдмрдирд╛рдПрдВ

рджреЛ рдирдИ рдХрд╛рд░реНрдпрд╛рддреНрдордХрддрд╛рдПрдВ рдореМрдЬреВрдж рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд┐рдиреНрд╣реЗрдВ рдпрд╛ рддреЛ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдореМрдЬреВрджрд╛ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдХрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. рдХреЗрд╡рд▓ рдЕрдЧреНрд░рднреВрдорд┐ рд╕реНрдерд╛рди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ
  2. рдЕрдЧреНрд░рднреВрдорд┐ рд╕реНрдерд╛рди рдкрд░ рдкрд╣реБрдВрдЪреЗрдВ, рдпрджрд┐ рдЙрдкрд▓рдмреНрдз рд╣реЛ, рдФрд░ рдПрдХ рдЕрдкрд╡рд╛рдж рдЙрдард╛рдПрдВред

рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ

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

рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд░рднрд╛рд╡рд┐рдд (рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ)

  • [ ] :рдЖрдИрдлреЛрди: рдЖрдИрдУрдПрд╕
  • [рдПрдХреНрд╕]: рд░реЛрдмреЛрдЯ: рдПрдВрдбреНрд░реЙрдЗрдб
android needs more info

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

@cguentherTUChemnitz рдФрд░ @arnerodde365 рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрджрд┐ рдЖрдк рдЕрдкрдиреА AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ ACCESS_BACKGROUND_LOCATION рдЕрдиреБрдорддрд┐ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЕрдм рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ Play Store рдЖрдкрдХреЗ рдРрдк рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрдЧрд╛ред

рдореИрдВ рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдкреНрд▓рдЧрдЗрди рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ)ред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЕрдкрдиреЗ AndroidManifest.xml рдореЗрдВ <manifest ...> рдЯреИрдЧ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдЪрд╛рдЗрд▓реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

 <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" tools:node="remove"/>

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ ACCESS_BACKGROUND_LOCATION рдЕрдиреБрдорддрд┐ рддрдм рднреА рд╣рдЯрд╛ рджреА рдЬрд╛рдПрдЧреА рдЬрдм рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЗрд╕реЗ AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдЙрди рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдЕрдиреБрдорддрд┐ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред

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

рд╣реЗ рдлреБрд▓реНрд╡рд┐рдпреЛ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рд╣реВрдВред

рдореИрдВ рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рд╣реВрдВред рджрд░рдЕрд╕рд▓ рдореЗрд░рд╛ рдРрдк рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рд▓реЛрдХреЗрд╢рди рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди google play рдореБрдЭрд╕реЗ рдХрд╣рддрд╛ рд╣реИ: рдЖрдк рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рд▓реЛрдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рдХрд╛рд░рдг, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдерд╛рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред

рдкреНрд▓рдЧрдЗрди рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╕реНрдерд╛рди рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЕрдиреБрд░реЛрдзрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рдкрд╛рдпрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ ACCESS_BACKGROUND_LOCATION рдЕрдиреБрдорддрд┐ рд╕реВрдЪреАрдмрджреНрдз рд╣реИ рдпрд╛ рдирд╣реАрдВ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ, рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЛ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

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

рд╕рднреА рдХреЛ рд╕реБрдкреНрд░рднрд╛рдд, рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП @mvanbeusekom рдзрдиреНрдпрд╡рд╛рджред

@marcuslindemannrohden рдореИрдВрдиреЗ рдЕрднреА рддрдХ Play Store рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рджрд░реНрдЬ рдХрд┐рдП рдмрд┐рдирд╛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╛рдиреА, рдпрд╣ рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдРрдк рдирдИ рдиреАрддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ ACCESS_BACKGROUND_LOCATION рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдЗрд╕ Google рд╕рдВрд╕рд╛рдзрди рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЕрдиреБрдорддрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝ рджреА рдЧрдИ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо 29 рд╕реЗ рдХрдо рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@mvanbeusekom (рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдкреНрд░рд╢реНрди рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рд╣реИ ЁЯШК) рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдХреНрдЯреВрдмрд░ рдХреЗ рдорд╣реАрдиреЗ рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдпрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ рдерд╛? рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧрд╛!

рд╕реБрдкреНрд░рднрд╛рдд @fbambusi , рдЗрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВрдиреЗ рдЕрдХреНрдЯреВрдмрд░ рд╕реЗ рдЕрднреА рддрдХ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рд╡рд╛рд▓реЗ рдкреНрд▓реЗ рд╕реНрдЯреЛрд░ рдкрд░ рдПрдХ рдРрдк рд╕рдмрдорд┐рдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдКрдВрдЧрд╛ рдФрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдЕрдкрдбреЗрдЯ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ #546 рдФрд░ #556 рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕реЗ рдареАрдХ рдмрд╛рдж рдореЗрдВ рдЙрдард╛рдКрдВрдЧрд╛ (рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреЗ рджреМрд░рд╛рди рдХрд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдкрд░ рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ, рдЗрд╕рдХреА рдЕрддреНрдпрдзрд┐рдХ рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА

рдкреНрд▓рдЧрдЗрди рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╕реНрдерд╛рди рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЕрдиреБрд░реЛрдзрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рдкрд╛рдпрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ ACCESS_BACKGROUND_LOCATION рдЕрдиреБрдорддрд┐ рд╕реВрдЪреАрдмрджреНрдз рд╣реИ рдпрд╛ рдирд╣реАрдВ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ, рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЛ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рдЕрдиреБрдорддрд┐ рдХрдм рдЬреЛрдбрд╝реА рдереА рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХрд▓ рдЗрд╕ рдЕрдиреБрдорддрд┐ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ Google рдХреЛ рдРрдк рд╕рдмрдорд┐рдЯ рдХрд░ рджрд┐рдпрд╛ред рдЕрдВрдд рдореЗрдВ рдЕрднреА Google рдиреЗ рдореЗрд░реЗ рдРрдк рдХреЛ рдордВрдЬреВрд░реА рджреЗ рджреА рд╣реИред
рдЖрдкрдХреЛ рдпрд╣ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди Google Play рдХрдВрд╕реЛрд▓ рдШреЛрд╖рдгрд╛ рдлреЙрд░реНрдо рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдирдорд╕реНрдХрд╛рд░ рджреЛрд╕реНрддреЛрдВ, рдЕрднреА-рдЕрднреА Google Play рд╕реЗ рд╕реНрд╡реАрдХреГрддрд┐ рдорд┐рд▓реА рд╣реИред
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЕрдВрджрд░ рд╡рд░реНрдЧ PermissionManager рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ "ACCESS_BACKGROUND_LOCATION" рдЕрдиреБрдорддрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИред
рдореИрдВрдиреЗ рдХрд▓ Google рдХреЛ рд╕рдмрдорд┐рдЯ рдХреА рдЧрдИ "ACCESS_FINE_LOCATION" рдФрд░ "ACCESS_COARSE_LOCATION" рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдерд╛рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣рд░ рдЪреАрдЬрд╝ рдФрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣рд░ рд╢рд░реНрдд рдХреЛ рд╣рдЯрд╛рдХрд░ рдХрдХреНрд╖рд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡реАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

package com.baseflow.geolocator.permission;

import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import android.util.Log;

import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import com.baseflow.geolocator.errors.ErrorCallback;
import com.baseflow.geolocator.errors.ErrorCodes;
import com.baseflow.geolocator.errors.PermissionUndefinedException;

import java.util.*;

import io.flutter.plugin.common.PluginRegistry;

public class PermissionManager
        implements PluginRegistry.RequestPermissionsResultListener {

    private static final int PERMISSION_REQUEST_CODE = 109;

    <strong i="10">@Nullable</strong>
    private Activity activity;
    <strong i="11">@Nullable</strong>
    private ErrorCallback errorCallback;
    <strong i="12">@Nullable</strong>
    private PermissionResultCallback resultCallback;

    public LocationPermission checkPermissionStatus(
            Context context,
            Activity activity) throws PermissionUndefinedException {
        String permission = determineFineOrCoarse(context);

        // If target is before Android M, permission is always granted
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
            return LocationPermission.whileInUse;
        }

        final int permissionStatus = ContextCompat.checkSelfPermission(context, permission);
        if (permissionStatus == PackageManager.PERMISSION_DENIED) {
            if (PermissionUtils.isNeverAskAgainSelected(activity, permission)) {
                return LocationPermission.deniedForever;
            } else {
                return LocationPermission.denied;
            }
        }

        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
            return LocationPermission.whileInUse;
        }


        return LocationPermission.whileInUse;
    }

    public void requestPermission(
            Activity activity,
            PermissionResultCallback resultCallback,
            ErrorCallback errorCallback)
            throws PermissionUndefinedException {
        final ArrayList<String> permissionsToRequest = new ArrayList<>();

        // Before Android M, requesting permissions was not needed.
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
            return;
        }

        String permission = determineFineOrCoarse(activity);
        permissionsToRequest.add(permission);



        this.errorCallback = errorCallback;
        this.resultCallback = resultCallback;
        this.activity = activity;

        ActivityCompat.requestPermissions(
                activity,
                permissionsToRequest.toArray(new String[0]),
                PERMISSION_REQUEST_CODE);
    }

    <strong i="13">@Override</strong>
    public boolean onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        if (requestCode != PERMISSION_REQUEST_CODE) {
            return false;
        }

        if (this.activity == null) {
            Log.e("Geolocator", "Trying to process permission result without an valid Activity instance");
            if (this.errorCallback != null) {
                this.errorCallback.onError(ErrorCodes.activityNotSupplied);
            }
            return false;
        }

        String requestedPermission;

        try {
            requestedPermission = determineFineOrCoarse(this.activity);
        } catch (PermissionUndefinedException ex) {
            if (this.errorCallback != null) {
                this.errorCallback.onError(ErrorCodes.permissionDefinitionsNotFound);
            }

            return false;
        }

        LocationPermission permission = LocationPermission.denied;

        int requestedPermissionIndex = indexOf(permissions, requestedPermission);

        if (requestedPermissionIndex < 0) {
            Log.w("Geolocator", "Location permissions not part of permissions send to onRequestPermissionsResult method.");
            return false;
        }

        if (grantResults.length == 0) {
            Log.i("Geolocator", "The grantResults array is empty. This can happen when the user cancels the permission request");
            return false;
        }

        if (grantResults[requestedPermissionIndex] == PackageManager.PERMISSION_GRANTED) {
            permission = LocationPermission.whileInUse;
        } else {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !activity.shouldShowRequestPermissionRationale(requestedPermission)) {
                permission = LocationPermission.deniedForever;
            }
        }

        for (String perm : permissions) {
            PermissionUtils.setRequestedPermission(activity, perm);
        }

        if (this.resultCallback != null) {
            this.resultCallback.onResult(permission);
        }

        return true;
    }

    private static <T> int indexOf(T[] arr, T val) {
        return Arrays.asList(arr).indexOf(val);
    }

    private static String determineFineOrCoarse(Context context) throws PermissionUndefinedException {
        boolean wantsFineLocation = PermissionUtils.hasPermissionInManifest(context, Manifest.permission.ACCESS_FINE_LOCATION);
        boolean wantsCoarseLocation = PermissionUtils.hasPermissionInManifest(context, Manifest.permission.ACCESS_COARSE_LOCATION);

        if (!wantsCoarseLocation && !wantsFineLocation) {
            throw new PermissionUndefinedException();
        }

        return wantsFineLocation ? Manifest.permission.ACCESS_FINE_LOCATION : Manifest.permission.ACCESS_COARSE_LOCATION;
    }

}

рд╣рд╛рдп @fbambusi , @marcuslindemannrohden , @eniserkaya ,

рдореИрдВ рдЗрд╕ рдкрд░ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕реНрдерд┐рддрд┐ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╕реБрдирддреЗ рд╕рдордп ( Geolocator.getPositionStream() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рд╕реБрдирдирд╛ рдмрдВрдж рдХрд░ рджреЗрдВ рд╕реНрдЯреНрд░реАрдо (рд╕рджрд╕реНрдпрддрд╛ рд░рджреНрдж рдХрд░реЗрдВ) рдЬрдм рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 6.0.0 рд╕реЗ 6.1.1 рдореЗрдВ рдПрдХ рдмрдЧ рдерд╛ рдЬреЛ рд╕реНрдерд┐рддрд┐ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╕рдХреНрд░рд┐рдп рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк getCurrentPosition рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрдерд┐рддрд┐ рд╕реНрдЯреНрд░реАрдо рд╕рдХреНрд░рд┐рдп рд╣реИ (рд╕рдорд╕реНрдпрд╛рдПрдВ #485 рдФрд░ #541 рджреЗрдЦреЗрдВ)ред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг 6.1.2 рдореЗрдВ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред

рд╕рд╛рд░рд╛рдВрд╢ рдореЗрдВ:

  1. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рдЕрдкрдиреА AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ ACCESS_BACKGROUND_LOCATION рдХрд┐рдпрд╛ рд╣реИ;
  2. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЬрдм рдЖрдкрдХрд╛ рдРрдк рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЖрдк рд╕рдХреНрд░рд┐рдп рд╕реНрдерд┐рддрд┐ рд╕реНрдЯреНрд░реАрдо рдХреА рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд/рд░рджреНрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ;
  3. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 6.1.2 рдореЗрдВ рдЕрдкрдбреЗрдЯ рд╣реИрдВред

рдХреБрдЫ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ:

рдХреЛрдб рдкрд░ рдЫреЛрдЯреА рдЯрд┐рдкреНрдкрдгреА @marcuslindemannrohden рдиреЗ PermissionManager рд╡рд░реНрдЧ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдпрд╣ рдХреЛрдб рдХреЗрд╡рд▓ рдкреГрд╖реНрдарднреВрдорд┐ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдЧрд╛ рдпрджрд┐ ACCESS_BACKGROUND_LOCATION рдЕрдиреБрдорддрд┐ AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ рддреЛ рдЗрд╕рдХрд╛ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕ рддрд░рд╣ рдпрд╣ рдРрдк рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ Google рджреНрд╡рд╛рд░рд╛ рдЖрдкрдХреЗ рдРрдк рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рднреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреАрдПрд╕ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Google Play Store рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрдИ рдРрдкреНрд╕ рд╕рдмрдорд┐рдЯ рдХрд┐рдП рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ getPositionStream рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ getLastKnownPosition рдФрд░ getCurrentPosition рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддреЛ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдореБрдЭреЗ рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдордВрдЬрд╝реВрд░реА рджрд┐рд▓рд╛рдиреЗ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд░рд╣реА рд╣реИ

рдПрдХ рд╣реА рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:

рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд▓реЛрдХреЗрд╢рди рдПрдХреНрд╕реЗрд╕ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣рдордиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдРрдк рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдлреАрдЪрд░ рд╣реИ рдЬреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд▓реЛрдХреЗрд╢рди рдПрдХреНрд╕реЗрд╕ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдлреАрдЪрд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рдШреЛрд╖рдгрд╛ рдлреЙрд░реНрдо рдЬрдорд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ Play рдХрдВрд╕реЛрд▓ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ рдФрд░ рдПрдХ рдШреЛрд╖рдгрд╛ рдлрд╝реЙрд░реНрдо рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВред

рдореИрдВ рдХреЗрд╡рд▓ getCurrentPosition рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ,
рдореИрдВ ACCESS_BACKGROUND_LOCATION рдЕрдиреБрдорддрд┐ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддрд╛, рдХреЗрд╡рд▓ ACCESS_FINE_LOCATION,
рдореИрдВ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 6.1.7 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдореИрдВ API рд╕реНрддрд░ 29 рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЬреЛ рдореИрдВ Developers.android рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, 29 рдФрд░ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рднреВрдорд┐ рд╕реЗрд╡рд╛ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

@ arnerodde365 , рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдкрдврд╝рдХрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдмрд╕ рдЕрдкрдиреА AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ <service рдШреЛрд╖рдгрд╛ рдЬреЛрдбрд╝рдиреА рд╣реИ рдФрд░ android:foregroundServiceType рд╕рдВрдкрддреНрддрд┐ рдХреЛ location :

<!-- Recommended for Android 9 (API level 28) and lower. -->
<!-- Required for Android 10 (API level 29) and higher. -->
<service
    android:name="MyNavigationService"
    android:foregroundServiceType="location" ... >
    <!-- Any inner elements would go here. -->
</service>

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ <service ...></service> рдШреЛрд╖рдгрд╛ рдХреЛ рдЖрдкрдХреА <application> рдШреЛрд╖рдгрд╛ рдХреЗ рдмрдЪреНрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдореИрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рдЕрджреНрдпрддрди рдХрд░реВрдБрдЧрд╛ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдБрдЧрд╛ рдХрд┐ рдпрд╣ README.md рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИред

рд╣рд╛рдБ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдБрдЧрд╛
рд▓реЗрдХрд┐рди рдореИрдВ рдРрдк рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдХреНрдпрд╛ рд░рдЦрд╛ рдЬрд╛рдП

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрдВрджрди-рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреИрдХреЗрдЬ рд╕реЗ рдПрдХ рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

@ arnerodde365 рдпрд╣ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдп рд╣реИ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдирд╛рдо рджреЗрдВ;)

рдРрдк рдЕрднреА рднреА рдЙрд╕реА рдЙрддреНрддрд░ рдХреЗ рд╕рд╛рде рдЦрд╛рд░рд┐рдЬ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ :(

рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди? рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░рд╛ рд╕рдВрдХрд▓рди рд╣реИ рдФрд░ рдПрд╕рдбреАрдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ 29 рддрдХ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐-рдЕрдиреБрдорддрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдРрдк рдмрдВрдбрд▓ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдпрд╣ рдЕрднреА рднреА рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдерд╛рди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд▓реВрдк рдХреЛ рдЫреЛрдЯрд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдРрдкрдмрдВрдбрд▓ рдмрдирд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛:

flutter build appbundle
Running Gradle task 'bundleRelease'...                             10.1s
тЬУ Built build/app/outputs/bundle/release/app-release.aab (132.6MB).

.aab рдлрд╝рд╛рдЗрд▓ рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рдРрдк-рд░рд┐рд▓реАрдЬрд╝/рдмреЗрд╕/рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ/AndroidManifest.xml рджреЗрдЦреЗрдВ

рдЗрд╕ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдРрдк-рд╕реНрдЯреЛрд░ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм рддрдХ [...]android.permission.ACCESS_BACKGROUND_LOCATION[...] рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореМрдЬреВрдж рд╣реИ, рдРрдкрд╕реНрдЯреЛрд░ рдЙрдЪрд┐рдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрдЧрд╛ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред

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

рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдмрд┐рдВрджреБ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдерд╛рди рдЕрдиреБрдорддрд┐ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдП, рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

@cguentherTUChemnitz рдХреЗ рд╕рд╛рде рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдпрд╣ рднреА рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ android.permission.ACCESS_BACKGROUND_LOCATION рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд▓рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреНрд▓рдЧрдЗрди рд╕реЗ рдЬреБрдбрд╝реА рд╕рднреА AndroidManifest.xml рдлрд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА, рд▓реЗрдХрд┐рди рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдорд┐рд▓реАред

рдХрд▓ рдореИрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд .aab рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдКрдВрдЧрд╛ рдФрд░ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдЗрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред

рджреЗрд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рдореБрдЭреЗ рдЕрдкрдирд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдорд┐рд▓ рдЧрдпрд╛ рд╣реИред
рдореБрдЭреЗ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдШреЛрд╖рдгрд╛ рдкрддреНрд░ рдореЗрдВ рдЧреЛрдкрдиреАрдпрддрд╛ рдиреАрддрд┐ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдереА, рдФрд░ рдлрд┐рд░ рд╕реНрдЯреЛрд░ рдореЗрдВ рдХреЛрдИ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдерд╛рди рдЬрд╛рд░реА рдХрд┐рдП рдмрд┐рдирд╛ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рдлреЙрд░реНрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдерд╛ред

рдореИрдВ рдЕрдм рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдмрдВрдбрд▓ рдХреА рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ ACCESS_BACKGROUND_LOCATION рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдФрд░ рдкреНрд▓рдЧрдЗрди рдиреЗ рдЗрд╕реЗ рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ред

@cguentherTUChemnitz рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдпрд╣ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдХреМрди рд╕рд╛ рдкреНрд▓рдЧрдЗрди рдерд╛? рдЗрд╕рд╕реЗ рджреВрд╕рд░реЛрдВ рдХреЛ рднреА рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИред

@ arnerodde365 , рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрди рдпрд╛ рдкреИрдХреЗрдЬ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП ACCESS_BACKGROUND_LOCATION рдЕрдиреБрдорддрд┐ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ pubspec.yaml (рдпрд╛ dependencies рдЕрдиреБрднрд╛рдЧ) рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд╣реИрдВ, рддреЛ рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдкреНрд▓рдЧрдЗрди рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдореБрдЦреНрдп рд╕реНрдкрдВрджрди рд░реЗрдкреЛ рдкрд░ рднреА рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рджреЗрдЦреЗрдВ рд╕реНрдкрдВрджрди/рд╕реНрдкрдВрджрди#73461)ред

  flutter_widget_from_html_core:  ^0.4.3      
  flutter_local_notifications:    ^1.4.4+2
  flutter_appcenter_bundle:       ^3.2.0+1
  shared_preferences:             ^0.5.6+2
  flutter_translate:              ^1.6.0
  redux_persist:                  ^0.8.3
  flutter_redux:                  ^0.6.0
  url_launcher:                   ^5.4.10
  package_info:                   ^0.4.0+13
  flutter_map:                    ^0.8.2
  geolocator:                     ^6.1.7
  provider:                       ^4.3.2+2
  geojson:                        ^0.9.1
  shimmer:                        ^1.1.2
  toast:                          ^0.1.5
  http:                           ^0.12.0+4
  intl:                           ^0.16.1

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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдРрдк рдЕрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ Google рдФрд░ рдЙрдирдХреЗ рдШреЛрд╖рдгрд╛ рдкрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА, рдореБрдЭреЗ рдмреАрдЯрд╛ рдореЗрдВ рдРрдк рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрд╛ рдХреНрдпреЛрдВрдХрд┐ рд▓рд╛рдЗрд╡ рд╕рдВрд╕реНрдХрд░рдг рдЧреЛрдкрдиреАрдпрддрд╛ рдиреАрддрд┐ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ ...

@cguentherTUChemnitz рдФрд░ @arnerodde365 рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрджрд┐ рдЖрдк рдЕрдкрдиреА AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ ACCESS_BACKGROUND_LOCATION рдЕрдиреБрдорддрд┐ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЕрдм рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ Play Store рдЖрдкрдХреЗ рдРрдк рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрдЧрд╛ред

рдореИрдВ рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдкреНрд▓рдЧрдЗрди рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ)ред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЕрдкрдиреЗ AndroidManifest.xml рдореЗрдВ <manifest ...> рдЯреИрдЧ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдЪрд╛рдЗрд▓реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

 <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" tools:node="remove"/>

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ ACCESS_BACKGROUND_LOCATION рдЕрдиреБрдорддрд┐ рддрдм рднреА рд╣рдЯрд╛ рджреА рдЬрд╛рдПрдЧреА рдЬрдм рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЗрд╕реЗ AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдЙрди рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдЕрдиреБрдорддрд┐ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдмреНрд▓рд╛ рдмреНрд▓рд╛ рдХреЙрдкреА рдкреЗрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рдФрд░ рдорд┐рд▓рд╛:

The prefix "tools" for attribute "tools:node" associated with an element type "uses-permission" is not bound.

рдЖрдкрдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ

    xmlns:tools="http://schemas.android.com/tools"

рд╢реАрд░реНрд╖ рдкрд░ рдЬреИрд╕реЗ:

```рдПрдХреНрд╕рдПрдордПрд▓
xmlns:tools="http://schemas.android.com/tools"
рдкреИрдХреЗрдЬ = "com.example.your_app">
````

рдпрд╣ рд╕рдорд╛рдзрд╛рди рд╕реЗ рдЖрддрд╛ рд╣реИ:

(https://stackoverflow.com/questions/55334431/face-below-error-toolsnode-рд╕рдВрдмрджреНрдз-рд╕рд╛рде-рдПрдХ-рддрддреНрд╡-рдкреНрд░рдХрд╛рд░-рдЙрдкрдпреЛрдЧ-рдЕрдиреБрдорддрд┐) рдиреАрдЪреЗ-рддреНрд░реБрдЯрд┐-рдЙрдкрдХрд░рдгрдиреЛрдб-рд╕рдВрдмрджреНрдз-рдПрдХ-рддрддреНрд╡-рдкреНрд░рдХрд╛рд░-рдЙрдкрдпреЛрдЧ-рдЕрдиреБрдорддрд┐ рдХреЗ рд╕рд╛рде]

рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ Android рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реНрд╡рдпрдВ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: ACCESS_BACKGROUND_LOCATION рдЖрдкрдХреЗ рдРрдк рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕ рд▓рд┐рдВрдХ рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ: https://developer.android.com/about/versions/10/privacy/changes#app -access-device-location
рдХреМрди рд╕рд╛ рд░рд╛рдЬреНрдп:

рдпрджрд┐ рдЖрдкрдХрд╛ рдРрдк Android 10 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Android 9 (API рд╕реНрддрд░ 28) рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд┐рдореНрди рд╡реНрдпрд╡рд╣рд╛рд░ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ:

рдпрджрд┐ рдЖрдкрдХрд╛ рдРрдк рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ aACCESS_FINE_LOCATION рдпрд╛ ACCESS_COARSE_LOCATION рдХреЗ рд▓рд┐рдП рддрддреНрд╡, рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИрд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди ACCESS_BACKGROUND_LOCATION рдХреЗ рд▓рд┐рдП рддрддреНрд╡ред
рдпрджрд┐ рдЖрдкрдХрд╛ рдРрдк рдпрд╛ рддреЛ ACCESS_FINE_LOCATION рдпрд╛ ACCESS_COARSE_LOCATION рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ ACCESS_BACKGROUND_LOCATION рдЬреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрдЯрд░ рдХреЗ рд▓рд┐рдП .apk (рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдмрд┐рд▓реНрдб) рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рдкреНрд▓реЗ рд╕реНрдЯреЛрд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдореМрдЬреВрдж рд╣реИред

"рдЖрдкрдХреА рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдерд╛рди рдЕрдиреБрдорддрд┐ рдШреЛрд╖рдгрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред"

AndroidManifest.xml рд╕рд╛рдлрд╝ рд╣реИ - рдХреЛрдИ рдЕрдиреБрдорддрд┐ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред
.apk рд╡рд┐рд╡рд░рдг (рдкреНрд▓реЗ рд╕реНрдЯреЛрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреГрд╖реНрда рдореЗрдВ) рдЕрдиреБрд░реЛрдзрд┐рдд рдХреЛрдИ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдмреАрдЯрд╛ рдЪреИрдирд▓ (рдХреНрдпреЛрдВрдХрд┐ рдмреЗрд╕рдлреНрд▓реЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдбрд╛рд░реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ)ред

[тЬУ] рд╕реНрдкрдВрджрди (рдЪреИрдирд▓ рдмреАрдЯрд╛, 1.25.0-8.3.pre, Linux рдкрд░, рд▓реЛрдХреЗрд▓ en_US.UTF-8)
тАв рд╕реНрдкрдВрджрди рд╕рдВрд╕реНрдХрд░рдг 1.25.0-8.3.pre at /home/anand/flutter
тАв рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрд╢реЛрдзрди 5d36f2e7f5 (11 рджрд┐рди рдкрд╣рд▓реЗ), 2021-01-14 15:57:49 -0800
тАв рдЗрдВрдЬрди рд╕рдВрд╢реЛрдзрди 7a8f8ca02c
тАв рдбрд╛рд░реНрдЯ рд╕рдВрд╕реНрдХрд░рдг 2.12.0 (рдмрд┐рд▓реНрдб 2.12.0-133.7.рдмреАрдЯрд╛)

[рдЫреЛрдбрд╝ рджрд┐рдпрд╛]

рдкреА.рдПрд╕.
рд╢рд╛рдпрдж рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ (рдкреБрд░рд╛рдиреА .apk ACCESS_BACKGROUND_LOCATION рдЕрдиреБрдорддрд┐ рдХреЗ рд╕рд╛рде):
https://stackoverflow.com/questions/65789352/google-asks-for-location-permission-declaration-for-new-android-app-release/65849925

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

рднрд▓реЗ рд╣реА рд╕рдорд╕реНрдпрд╛ рдкреНрд▓рдЧрдЗрди рдЬрд┐рдУрд▓реЛрдХреЗрд╢рди рд╕реЗ рдирд╣реАрдВ рдЖрддреА рд╣реИ, рдХрд┐рд╕реА рдХреЛ рднреА рд╕рдорд╛рдзрд╛рди рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ?

рдореБрдЭреЗ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА рд╣реИ: рдореИрдВ рдХреЗрд╡рд▓ рдЕрдЧреНрд░рднреВрдорд┐ рднреМрдЧреЛрд▓рд┐рдХ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ рдореИрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ ACCESS_BACKGROUND_LOCATION рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди Google Play рдореЗрд░реЗ рдРрдк рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИред

Background location access not declared
We detected that your app contains at least one feature that requests access to location in the background, 
however  your permission declaration form did not reflect this. 
Please log in to your Play Console to resubmit your location declaration form.
You may either remove location in the background from your app or indicate that the usage is in the background.

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

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

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

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

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

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

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

Andrew-Tolentino picture Andrew-Tolentino  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ