рд╣рдордиреЗ рдПрдВрдбреНрд░рд╛рдпрдб рдПрдкреНрд▓реАрдХреЗрд╢рди рдореЗрдВ рд╣рд╛рд░реНрдордиреА рдУрдПрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛

рдпрд╣ рд╕рдм рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ рдХрд┐ рдЕрдореЗрд░рд┐рдХреА рд╡рд╛рдгрд┐рдЬреНрдп рд╡рд┐рднрд╛рдЧ рдиреЗ рдЙрди рдХрдВрдкрдирд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реБрдЖрд╡реЗрдИ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛, рдЬрд┐рдирдХреЗ рд╕рд╛рде рдЕрдореЗрд░рд┐рдХреА рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рдкрд╛рд░ рдХрд░рдирд╛ рдордирд╛ рд╣реИ ред рд╣реБрдЖрд╡реЗрдИ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдкрдиреЗ рд╕реНрдорд╛рд░реНрдЯрдлрд╝реЛрди рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдордиреА рдУрдПрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдереА, рдФрд░ рдЗрд╕рдореЗрдВ Google рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдмрд╛рдЬрд╛рд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдЦреЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЗрдирдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рдЗрд╕рдХреЗ рд╕рдорд░реНрдерди рдХреЛ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ "рдУрдПрд╕ рдПрдХреАрдХрд░рдг" рдЬреЛрд░ рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ - рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди, рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдХреА рддрд░рд╣, рд╕рджреНрднрд╛рд╡ рдкрд░ рдЪрд▓реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди Huawei рд╡рд╛рд▓реЗ Google рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред



InDriver рдореЗрдВ, рд╣рдо 3 рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП Google рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

  • рдзрдХреНрдХрд╛ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдирд╛;
  • рд╕реНрдерд╛рди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛;
  • рдЧреВрдЧрд▓ рдорд╛рдирдЪрд┐рддреНрд░ред

рдкреБрд╢ рдХрд┐рдЯ - рдкреБрд╢ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рднреЗрдЬреЗрдВ


рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд╣реБрдЖрд╡реЗрдИ рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИрдВ ред рд▓реЗрдХрд┐рди рдПрдХ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕реЗрд╡рд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ

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

рдПрдЪрдПрдордПрд╕ рдПрд╕рдбреАрдХреЗ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдирд╛

рдПрдХреАрдХрд░рдг рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реЛрдВрдЧреАред рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ рд╣рдорд╛рд░реЗ Ubuntu 16.04.5 LTS рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ (GNU / Linux 4.4.0-174-рдЬреЗрдиреЗрд░рд┐рдХ x86_64) рдкрд░ рдорд╛рдорд▓рд╛ рдерд╛, рдЬрдмрдХрд┐ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдореИрдХ рдорд┐рдиреА (2018 рдХреЗ рдЕрдВрдд рдореЗрдВ, Mojave) рдореЗрдВ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛ред рдпрджрд┐ рдЖрдк рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

Execution failed for task ':app:processIndriverReleaseManifest'. org.gradle.api.GradleException: ERROR: no manifest file found



agcp {
   manifest false
}

build.gradleрдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрддрд░ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ agcpред рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ agcpрдПрдХ рдкреНрд░рдХрдЯ рдлрд╝рд╛рдЗрд▓ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдвреВрдВрдв рдФрд░ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ agconnectред рдХрдо рд╕реЗ рдХрдо рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╣реБрдЖрд╡реЗрдИ рддрдХрдиреАрдХреА рд╕рдорд░реНрдерди рд╣рдореЗрдВ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ред

AndroidManifest.xml рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░

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

public void onNewToken(String token) {}

рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛: HUAWEI рдкреБрд╢ рдХрд┐рдЯ рдХрдВрд╕реЛрд▓ред

рдЗрд╕рдХреЗ рд╕рд╛рде, рдЖрдк рдкреБрд╢ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп: рдпрджрд┐ рдЖрдк рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЪреБрдирддреЗ рд╣реИрдВType: Notification Message, рддреЛ рд╡реЗonMessageReceived(RemoteMessage message)рддреБрд░рдВрддрд╣реИрдВрдбрд▓рд░ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реБрдПрдлреЛрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдВрдЧреЗред

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

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдлреЛрди рдкрд░ рджреЛ рдкреБрд╢ рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЙрдирдХреЗ рд╕рдВрдпреБрдХреНрдд рдХрд╛рдо рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдлреЛрди рдкрд░ рдХреМрди рд╕реА рд╕реЗрд╡рд╛рдПрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рд╣рдорд╛рд░реЗ рд╕реНрдерд╛рди рдкрд░, рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ Google рд╕реЗрд╡рд╛рдПрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдЧреАред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдпрджрд┐ Google рдФрд░ Huawei рджреЛрдиреЛрдВ рд╕реЗрд╡рд╛рдПрдВ рдлреЛрди рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рддреЛ рд╣рдо Google рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдкрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдзреНрд╡рдЬ рднреЗрдЬрддреЗ рд╣реИрдВ:

- UNKNOWN
- GOOGLE
- HUAWEI

fun checkServices(context: Context): PlayServicesState {
   val googleAPI = GoogleApiAvailability.getInstance()
   when (googleAPI.isGooglePlayServicesAvailable(context)) {
       ConnectionResult.SUCCESS,
       ConnectionResult.SERVICE_MISSING,
       ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED,
       ConnectionResult.SERVICE_DISABLED -> return PlayServicesState.GOOGLE
   }
   val huaweiAPI = HuaweiApiAvailability.getInstance()
   when (huaweiAPI.isHuaweiMobileNoticeAvailable(context)) {
       com.huawei.hms.api.ConnectionResult.SUCCESS,
       com.huawei.hms.api.ConnectionResult.SERVICE_MISSING,
       com.huawei.hms.api.ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED,
       com.huawei.hms.api.ConnectionResult.SERVICE_DISABLED -> return PlayServicesState.HUAWEI
   }
   return PlayServicesState.UNKNOWN
}

рдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рд░реНрд╡рд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛ рдХреЛ рдкреБрд╢ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬреЗрдЧрд╛ред

рдЙрдирдХреЗ рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рд╡рд┐рд╖рдп рд╣реИред рдореИрдВрдиреЗ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдХрд┐рдпрд╛ред

FCM рдХреЗ рд▓рд┐рдП рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ:

class AppFcmListenerService : FirebaseMessagingService() {
   private val cloudMessageHandler: CloudMessageHandler = GoogleMessageHandler(this)
   override fun onMessageReceived(message: RemoteMessage) {
       cloudMessageHandler.onMessageReceived(message)
   }
}

рдФрд░ HCM:

class AppHmsListenerService : HmsMessageService() {
   private val cloudMessageHandler: CloudMessageHandler = HuaweiMessageHandler(this)
   override fun onMessageReceived(message: RemoteMessage) {
       cloudMessageHandler.onMessageReceived(message)
   }
}

рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдХреЛ рд╕реМрдВрдк рджрд┐рдпрд╛:

abstract class CloudMessageHandler { 
fun onMessageReceived(message: Any) {
   val data = getData(message)
   onMessageReceived(data)
}
private fun onMessageReceived(data: Map<String, String>) {
   //   
}
abstract fun getData(message: Any) :  Map<String, String> {
}

рдЬрд┐рд╕рдореЗрдВ рджреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ:

FCM рдХреЗ рд▓рд┐рдП:

class FirebaseMessageHandler(override val context: Context) : CloudMessageHandler(context) {
   override fun getData(message: Any): Map<String, String> {
       return (message as RemoteMessage).data
   }
}

HCM рдХреЗ рд▓рд┐рдП:

class HuaweiMessageHandler(override val context: Context) : CloudMessageHandler(context) {
   override fun getData(message: Any): Map<String, String> {
       return (message as RemoteMessage).dataOfMap
   }
}

Huawei рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ Google рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ рд╕рдорд╛рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред рдпрд╣ "рд▓рдЧрднрдЧ" рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореЗрдВ рдкреНрд░рдХрдЯ рдХрд┐рдпрд╛ рд╣реИ RemoteMessageрдмрд╛рд╣рд░ com.google.firebase.messagingрдХреЗ рд▓рд┐рдП Map<String, String>рдЖрдк рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ RemoteMessage.getData()рд╣реИрдВ, рдФрд░ рдХреЗ рд▓рд┐рдП RemoteMessageрдмрд╛рд╣рд░ com.huawei.hms.push- getDataOfMap()ред

рд╕реНрдерд╛рди рдХрд┐рдЯ - рд╕реНрдерд╛рди рдирд┐рд░реНрдзрд╛рд░рдг


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

рд╕реНрдерд╛рди

рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдХреА рдЬрдЧрд╣


CIS рдореЗрдВ, рд╣рдордиреЗ 2GIS рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде OSM рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдПрдХреАрдХрд░рдг рдХреЗ рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рд╣рдордиреЗ HUAWEI рд╕реЗ рдореИрдк рдХрд┐рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдмрд╕ OSM рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде OSM рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред

рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ


рдореИрдВ рд╕рднреА рдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ AppGallery рдореЗрдВ рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░рдгреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣реБрдЖрд╡реЗрдИ рд░рд┐рд▓реАрдЬ рдЯреАрдо рдиреЗ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрд▓реНрд▓рдВрдШрдиреЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреАред

рд╣рд╛рдВрдЧрдХрд╛рдВрдЧ рдФрд░ рдордХрд╛рдК

рдЪреАрди рдХреА рдЧреИрд░-рдорд╛рдирдХ рдкреНрд░рд╕реНрддреБрддрд┐ рдЕрдкрдиреЗ рд╕реНрд╡рд╛рдпрддреНрдд рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕рдВрдкреНрд░рднреБрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреМрдХрд╕ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ "рдХреНрд╖реЗрддреНрд░" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдиреЗ рд╣рдореЗрдВ рдЙрди рд╕рднреА рд╢реАрд░реНрд╖рдХреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬреЛ рджреЗрд╢ рдпрд╛ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрд╢ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВред



рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА

рдРрдк рдЧреИрд▓рд░реА рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреГрд╖реНрда рдкрд░ рднреЗрдЬрдХрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░реЗрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ, Google Play Store :)

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

All Articles