dir.by  
  Поиск  
Компьютер, программы
Android, Google Play телефон, планшет (пишем приложение, игру)
Kotlin приложение (для Android телефона) в Android Studio
 Android Kotlin приложение делает фото на камеру и рисует в приложении | Android Studio | Kotlin 
посмотрели 5077 раз
обновлено: 9 апреля 2024
Скачать пример:
Описание
Я написал приложение в котором есть кнопка  I want make photo  и при нажатии я вызываю стандартную фунциональность чтобы сделать фото:


 

я нажмаю на кнопку  I want make photo :




 

я нажмаю разрешить камеру:




 

Нажимаю на стандартнаю телефонную
кнопку сделать фото:




 

Соглашаюсь:




 

Мое приложение загружает новое фото и отображает:




Шаг 1. Создаем новый проект
Шаг 2. Поменяем код в файле MainActivity.kt
Цвет          означает, что добавлен новый код.
  Файл MainActivity.kt
package com.example.androidkotlinapp1

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Environment.DIRECTORY_PICTURES
import android.provider.MediaStore.ACTION_IMAGE_CAPTURE
import android.provider.MediaStore.EXTRA_OUTPUT
import android.widget.Button
import android.widget.ImageView
import androidx.core.content.FileProvider
import android.content.Context
import android.content.Intent
import android.net.Uri
import java.io.File
import java.text.SimpleDateFormat
import java.util.*


class MainActivity : AppCompatActivity() {

     val MY_REQUEST_CODE1 = 100
     var UriFilePath_to_SaveImage:Uri? = null


     override fun onCreate(savedInstanceState: Bundle?) {
          super.onCreate(savedInstanceState)
          setContentView(R.layout.activity_main)

          val myButton = findViewById(R.id.button1) as Button

          myButton.setOnClickListener {
               UriFilePath_to_SaveImage = createURIpath(baseContext)
               val intent = Intent(ACTION_IMAGE_CAPTURE)
               intent.putExtra(EXTRA_OUTPUT, UriFilePath_to_SaveImage)
               startActivityForResult(intent, MY_REQUEST_CODE1);
          }

     }

     // I override system function
     override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
          super.onActivityResult(requestCode, resultCode, intent)
          if (resultCode == RESULT_OK && requestCode == MY_REQUEST_CODE1) {
               show_URI_in_ImageView(UriFilePath_to_SaveImage)
          }
     }


     // my function for output path (where put new image)
     fun createURIpath(context: Context): Uri {
          val fileName = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.GERMAN).format(Date())
          val path = getExternalFilesDir(DIRECTORY_PICTURES)
          val file = File(path, "$fileName.jpg")
          return FileProvider.getUriForFile( context, "${BuildConfig.APPLICATION_ID}.fileprovider", file)
     }


     // my function for image view
     fun show_URI_in_ImageView(uri: Uri?)
     {
          val myImageView = findViewById(R.id.imageView1) as ImageView
          myImageView.setImageURI(uri)
     }

}
Объяснение:
1) находим мою кнопку по id
val myButton = findViewById(R.id.button1) as Button


На заметку!
Вот так я добавил id в res/layout/activity_main.xml:
@+id/ это системное Android выражение
button1 это id моей кнопки.
...
<Button
 
    android:id="@+id/button1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:backgroundTint="#00FF00"
     android:textColor="#000000"
     android:text="I want make photo" />
...

 
2) по нажатию на моей кнопке открываем системную камеру чтобы сделать фото:
...
myButton.setOnClickListener {
     UriFilePath_to_SaveImage = createURIpath(baseContext)
     val intent = Intent(ACTION_IMAGE_CAPTURE)
     intent.putExtra(EXTRA_OUTPUT, UriFilePath_to_SaveImage)
     startActivityForResult(intent, MY_REQUEST_CODE1);
}
...


На заметку 1
Это обработчик нажатия кнопки: myButton.setOnClickListener { ... }
При нажатии кнопки будет вызыван код внутри скобок.

На заметку 2
Создаем объект Intent.
Intent это класс чтобы хранить параметры.
Intent нужен чтобы передать эти параметры в Activity
Метод startActivityForResult показывает Activity, выполняет в Activity какое-либо действие и вернется с результатом.
В Intent я указал:
ACTION_IMAGE_CAPTURE это значит что я буду делать фото с камеры телефона
EXTRA_OUTPUT это uri путь и туда будут сохраняться фото
3) Когда сделали фото с камеры телефона вызовется системная функция:
override fun onActivityResult
override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
     super.onActivityResult(requestCode, resultCode, intent)
     if (resultCode == RESULT_OK && requestCode == MY_REQUEST_CODE1) {
          show_URI_in_ImageView(UriFilePath_to_SaveImage)
     }
}


На заметку 1
Обязательно надо вызвать базовый метод:
super.onActivityResult(requestCode, resultCode, intent)

На заметку 2
По requestCode я определяю какая Activity вернула результат:
if (resultCode == RESULT_OK && requestCode == MY_REQUEST_CODE1)

MY_REQUEST_CODE1 я использую в самом верху файла это может быть любым числом:
val MY_REQUEST_CODE1 = 100

Еще я передаю MY_REQUEST_CODE1 в запуск Activity:
startActivityForResult(intent, MY_REQUEST_CODE1);


На заметку 3
После сделанно фото я вызываю мою функцию show_URI_in_ImageView(UriFilePath_to_SaveImage) чтобы показать фото на экране возле моей кнопки.

Интересно то что:
• Сделанно фото сохранится по моему uri в папке моего приложения
content://com.example.androidkotlinapp1.fileprovider/pictures/20240103_191203.jpg

• А вот если бы мы выбирали фото из галереи вот мое Kotlin приложение:
   Android Kotlin выбираем фото из галереи и рисуем в приложении | Android Studio | Kotlin ...
То uri сам придет к нам из data в функции:
override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
     super.onActivityResult(requestCode, resultCode, intent)
     val uriFromGallery = intent?.data
}
4) Моя функция createURIpath
Моя функция создает пустой файл и возращает uri путь
fun createURIpath(context: Context): Uri {
          val fileName = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.GERMAN).format(Date())
          val path = getExternalFilesDir(DIRECTORY_PICTURES)
          val file = File(path, "$fileName.jpg")
          return FileProvider.getUriForFile( context, "${BuildConfig.APPLICATION_ID}.fileprovider", file)
     }


На заметку 1
val fileName = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.GERMAN).format(Date())
Имя файла я делаю как дата и время, например: 3 january 2024 19:38:37
val fileName = "20240103_193837.jpg"

На заметку 2
val path = getExternalFilesDir(DIRECTORY_PICTURES)
DIRECTORY_PICTURES это Android системная константа, еще есть: DIRECTORY_MUSIC, DIRECTORY_MOVIES, DIRECTORY_DOCUMENTS
getExternalFilesDir это Android системная функция которая возвращает полный путь к директорию, где наше приложение может размещать постоянные файлы
path в нашем случае это папка где будут сохранены картинки потому что используем DIRECTORY_PICTURES
path = "/storage/emulated/0/Android/data/com.example.androidkotlinapp1/files/Pictures"
Читать подробно: Что такое getExternalFilesDir в Android Studio, Kotlin ...

На заметку 3
val file = File(path, "$fileName.jpg")
создаем пустой jpg файл в папке path c именем fileName

На заметку 4
return FileProvider.getUriForFile( context, "${BuildConfig.APPLICATION_ID}.fileprovider", file)
FileProvider.getUriForFile это системная функция которая используя файл и application id возращает uri путь.
Вернется uri путь:
content://com.example.androidkotlinapp1.fileprovider/pictures/20240103_191203.jpg
5) Моя функция show_URI_in_ImageView
Моя функция рисует картинку в ImageView по uri
fun show_URI_in_ImageView(uri: Uri?)
{
     val myImageView = findViewById(R.id.imageView1) as ImageView
     myImageView.setImageURI(uri)
}


На заметку!
Вот так я добавил id в res/layout/activity_main.xml:
...
<ImageView
 
    android:id="@+id/imageView1"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     tools:srcCompat="@tools:sample/avatars" />
...
Шаг 3. Поменяем код в файле activity_main.xml
В файл activity_main.xml добавим графические элементы:
LinearLayout
это слой в котором элементы отображаются друг за другом по вертикали или горизонтали (у меня по вертикали потому что установлен параметр android:orientation="vertical)
Button
Это кнопка
ImageView
Для отображения картинки
Цвет          означает, что добавлен новый код.
  Файл activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     tools:context=".MainActivity">

     <LinearLayout
 
         android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical">

          <Button
 
              android:id="@+id/button1"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:backgroundTint="#00FF00"
               android:textColor="#000000"
               android:text="I want make photo" />

          <ImageView
 
              android:id="@+id/imageView1"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               tools:srcCompat="@tools:sample/avatars" />
     </LinearLayout>


</androidx.constraintlayout.widget.ConstraintLayout>
Шаг 4. Поменяем код в файле AndroidManifest.xml
  Файл AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools">

     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
     <uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
     <uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>


     <application
 
         android:allowBackup="true"
          android:dataExtractionRules="@xml/data_extraction_rules"
          android:fullBackupContent="@xml/backup_rules"
          android:icon="@mipmap/ic_launcher"
          android:label="@string/app_name"
          android:supportsRtl="true"
          android:theme="@style/Theme.AndroidKotlinApp1"
          tools:targetApi="31">
          <activity
 
              android:name=".MainActivity"
               android:exported="true">
               <intent-filter>
                    <action android:name="android.intent.action.MAIN" />

                    <category android:name="android.intent.category.LAUNCHER" />
               </intent-filter>
          </activity>

          <provider
 
              android:name="androidx.core.content.FileProvider"
               android:authorities="${applicationId}.fileprovider"
               android:exported="false"
               android:grantUriPermissions="true">
               <meta-data
 
                   android:name="android.support.FILE_PROVIDER_PATHS"
                    android:resource="@xml/file_paths" />
          </provider>


     </application>

</manifest>
Почему в манифест файле используется ${applicationId} ?
Почему в MainActivity.kt файле используется ${BuildConfig.APPLICATION_ID} ?

Объяснение:
Это одно и тоже значение "com.example.androidkotlinapp1" и берется из файла build.gradle.
Подробнее:
Файл AndroidManifest.xml

Что такое ${applicationId}
Файл AndroidManifest.xml
...
<provider
 
    android:name="androidx.core.content.FileProvider"
     android:authorities="${applicationId}.fileprovider"
     android:exported="false"
     android:grantUriPermissions="true">
     <meta-data
 
         android:name="android.support.FILE_PROVIDER_PATHS"
          android:resource="@xml/file_paths" />
</provider>...


На заметку!
${applicationId} это значит переменная, что переменная applicationId берется из файла build.gradle:
android {
     namespace 'com.example.androidkotlinapp1'
     compileSdk 33

     defaultConfig {
          applicationId "com.example.androidkotlinapp1"
          minSdk 27
          targetSdk 33
          versionCode 1
          versionName "1.0"

          testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
     }
     ...
}
dependencies {
     ...
}

 
Читать подробнее: как сделать переменную в build.gradle файле и передать ее в манифест файл AndroidManifest.xml | Android ...
Файл MainActivity.kt

Что такое ${BuildConfig.APPLICATION_ID}
Файл MainActivity.kt
fun createURIpath(context: Context, dir: String, ext: String): Uri {
     ...
     return FileProvider.getUriForFile(context, "${BuildConfig.APPLICATION_ID}.fileprovider", file)
}
...


На заметку 1
FileProvider.getUriForFile это системная функция которая используя файл и application id возращает uri путь.
 
На заметку 2
BuildConfig.APPLICATION_ID это переменная.
Класс BuildConfig создается сам при компиляции проекта и находится в папке build:
public final class BuildConfig {
     public static final String APPLICATION_ID = "com.example.androidkotlinapp1";
     public static final int VERSION_CODE = 1;
     public static final String VERSION_NAME = "1.0";
...
}

Значения берутся из файла build.gradle из секции defaultConfig.
Файл build.gradle:
android {
     namespace 'com.example.androidkotlinapp1'
     compileSdk 33

     defaultConfig {
          applicationId "com.example.androidkotlinapp1"
          minSdk 27
          targetSdk 33
          versionCode 1
          versionName "1.0"

          testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
     }
     ...
}
dependencies {
     ...
}



Читать подробнее: как сделать переменную в build.gradle файле и передать ее в Kotlin файл | Android Studio | Kotlin ...
Шаг 5. Создадим новый файл file_paths.xml
Файл создадим внутри папки:
D:\AndroidKotlinApp1
    app
       src
          main
             res
                xml
  Файл file_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<paths>
     <external-path
 
         name="pictures"
          path="Android/data/com.example.androidkotlinapp1/files/Pictures" />
     <external-path
 
         name="music"
          path="Android/data/com.example.androidkotlinapp1/files/Music" />
     <external-path
 
         name="docs"
          path="Android/data/com.example.androidkotlinapp1/files/Documents" />
     <external-path
 
         name="pdf"
          path="." />
</paths>
вот так:
Объяснение:
Файл AndroidManifest.xml

Секция <provider>...</provider>... ссылается на xml файл file_paths
Файл AndroidManifest.xml
...
<provider
 
    android:name="androidx.core.content.FileProvider"
     android:authorities="${applicationId}.fileprovider"
     android:exported="false"
     android:grantUriPermissions="true">
     <meta-data
 
         android:name="android.support.FILE_PROVIDER_PATHS"
          android:resource="@xml/file_paths" />
</provider>...
Файл file_paths.xml сделать доступ к определенному пути по имени
Файл file_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<paths>
     <external-path
 
         name="pictures"
          path="Android/data/com.example.androidkotlinapp1/files/Pictures" />
     <external-path
 
         name="music"
          path="Android/data/com.example.androidkotlinapp1/files/Music" />
     <external-path
 
         name="docs"
          path="Android/data/com.example.androidkotlinapp1/files/Documents" />
     <external-path
 
         name="pdf"
          path="." />
</paths>


На заметку!
В файле MainActivity.kt я вызываю системную функцию getExternalFilesDir
val path = getExternalFilesDir(DIRECTORY_PICTURES)
DIRECTORY_PICTURES это Android системная константа, еще есть: DIRECTORY_MUSIC, DIRECTORY_MOVIES, DIRECTORY_DOCUMENTS
getExternalFilesDir это Android системная функция которая возвращает полный путь к директорию, где наше приложение может размещать постоянные файлы
path в нашем случае это папка где будут сохранены картинки потому что используем DIRECTORY_PICTURES
path = "/storage/emulated/0/Android/data/com.example.androidkotlinapp1/files/Pictures"
Читать подробно: Что такое getExternalFilesDir в Android Studio, Kotlin ...
Очень очень важно: com.example.androidkotlinapp1 в path должен совпадать с com.example.androidkotlinapp1 в applicationId в build.gradle файле
Шаг 6. Запустим проект и посмотрим где будет сохранена картинка
Файл будет сохранен в телефоне вот тут:
file path:
/storage/emulated/0/Android/data/com.example.androidkotlinapp1/files/Pictures/20240103_193837.jpg
URI:
content://com.example.androidkotlinapp1.fileprovider/pictures/20240103_191203.jpg
 
← Предыдущая тема
Показываем окно с 2-мя кнопками: yes, no и не надо добавлять никаких resource, layout | Я вызываю функцию AlertDialog в Kotlin | Android Studio
 
Следующая тема →
Android Kotlin выбираем фото из галереи и рисуем в приложении | Android Studio | Kotlin ...
 
Ваши Отзывы ... комментарии ...
   
Вашe имя
Ваш комментарий (www ссылки может добавлять только залогиненный пользователь)

Экскурсии по Москве Экскурсии по Москве: пешеходные, автобусные и речные прогулки на любой вкус
  Объявления  
  Объявления  
 
Что такое операционная система Android? Какие номера версий были в Android
Что такое ARM процессоры? | Android
Что такое AndroidX?
Java приложение (для Android телефона) в Android Studio
Почему Android приложения пишутся на Java?
Скачать и установить Android Studio для написания программ для Android телефонов на языке Java, Kotlin
Открываем Android Studio на компьютере (Windows 10)
Создаем новый проект на Java с одной простой Activity в Android Studio (пишем программу для Android телефонов, планшетов) в Windows 10
Пример "Устанавливаем текст в TextView" через Java код | Android, Java приложение
Пример "Отправляю http (web api) запрос на сайт и ответ отображаю в TextView" | Android, Java приложение
Компиляция и запуск приложения в Android Studio на компьютере (Windows) в режиме эмулятора Android Device
Запуск приложения Android Studio в отладке на компьютере (Windows) в режиме эмулятора Android Device
Ошибка "error while waiting for device: the emulator process for ..... has terminated" при запуске приложения в Android Studio на компьютере (Windows) в режиме эмулятора Android Device
Ошибка "Error while waiting for device: Illegal char <*> at index 0: *.lock ..." при запуске приложения в Android Studio
Ошибка "AVD is already running ..." при запуске приложения в Android Studio
Ошибка "CMake "3.18.1" was not found in SDK, PATH, or by cmake.dir property" при компиляции проекта в Android Studio
Ошибка "Execution failed for task ":app:compressDebugAssets" при компиляции проекта в Android Studio
Все ошибки при запуске Android приложения
Что такое Android SDK (копия операционной системы Android)? Инсталлирование Android SDK 8.1 в Android Studio ...
Создаем Android виртуальное устройство в Android Studio
Установить HAXM
Activity в Android
Kotlin приложение (для Android телефона) в Android Studio
Скачать и установить Android Studio для написания программ для Android телефонов на языке Java, Kotlin
Создаем новый проект "Empty Views Activity" на Kotlin в Android Studio (пишем программу для Android телефонов, планшетов) в Windows 10
Компиляция и запуск Kotlin приложения в Android Studio на компьютере (Windows) в режиме эмулятора Android Device
Запуск Kotlin приложения в Android Studio в отладке на компьютере (Windows) в режиме эмулятора Android Device
Запуск и отладка Kotlin Android Studio приложения на моем телефоне через USB
Долгое ожидание при запуске Kotlin Android приложения. Вижу сообщение: "I/zygote:Waiting for a blocking GC ProfileSaver"
Создаем Android проект добавляем TextView и показываем значение на телефоне | Android телефон, Android Studio, Kotlin, Windows 10
Копирование данных в классе и объекта. Используем аттрибут @Parcelize и интрефейс Parcelable. | Kotlin | Android Studio
Ошибка "Class is not abstract and does not implement abstract member public abstract fun describeContents(): Int defined in android.os.Parcelable" | Kotlin | Android Studio | @Parcelize | Parcelable
Показываем окно с 2-мя кнопками: yes, no и не надо добавлять никаких resource, layout | Я вызываю функцию AlertDialog в Kotlin | Android Studio
Android Kotlin приложение делает фото на камеру и рисует в приложении | Android Studio | Kotlin
Android Kotlin выбираем фото из галереи и рисуем в приложении | Android Studio | Kotlin ...
getExternalFilesDir - функция, которая возвращает полный путь к внешнему каталогу, в который наше приложение может помещать постоянные файлы | Android Studio, Kotlin
getFilesDir - функция, которая возвращает полный путь к каталогу, в который наше приложение может поместить файлы | Android Studio, Kotlin
Как работать с файлами, media в Android? Что такое content Uri и file path. Отличие getExternalFilesDir и getFilesDir ... | Android Studio, Kotlin
Как сделать переменную в build.gradle файле и передать ее в манифест файл AndroidManifest.xml | Android Studio | Kotlin
Как сделать переменную в build.gradle файле и передать ее в Kotlin файл | Android Studio | Kotlin
Moshi (Преобразование текста json в объект класса) | десериализация на языке Kotlin | Android Studio
Moshi (Преобразование массива json в список объектов) | десериализация на языке Kotlin | Android Studio
Ошибка "Failed to find the generated JsonAdapter class for class com.example.androidkotlinapp1.MyBook" | Exception | Kotlin | Moshi | Android Studio
Ошибка "A problem occurred evaluating project ':app'. Caused by: CustomMessageMissingMethodException: Could not find method kapt() for arguments [com.squareup.moshi:moshi-kotlin-codegen:1.14.0]" | При компиляции Kotlin, Moshi проекта в Android Studio
Jetpack приложение (для Android телефона) в Android Studio | Kotlin
Что такое Jetpack для Android?
Создаем новый проект "Jetpack Compose" на Kotlin в Android Studio (пишем программу для Android телефонов, планшетов) в Windows 10
Ошибка компиляции "Dependency 'androidx.core:core-ktx:1.17.0' requires Android Gradle plugin 8.9.1 or higher" | Jetpack | Kotlin | Android Studio
C++ игра (для Android телефона) в Android Studio | Android NDK, OpenGL ES
Что такое Android NDK для Android телефона? Это C++ библиотека для Android телефона.
Android С++ NDK руководство для начинающих (книга)
Что такое Android OpenGL ES для Android телефона? Это C++ графическая библиотека для Android телефона.
Создаем проект "Android Native C++ Game" для телефона | Android Studio, Android NDK, OpenGL ES, C++
Рисование озера по точкам для 2D игры
Рисую вражеский самолетик как векторная графика в Adobe Illustrator. Беру координаты точек из Adobe Illustrator и добавляю в мою 2D игру на C++ OpenGL
Компиляция и запуск "Android Native C++ Game" в Android Studio на компьютере(Windows) в режиме эмулятора Android Device
Ошибка "[CXX1405] error when building with cmake using CMakeLists.txt: C build system [configure] failed while executing cmake.exe" при компиляции Android Native C++ приложения в Android Studio на компьютере (Windows)
Ошибка "ninja: error: rebuilding 'build.ninja': subcommand failed" при компиляции Android Native C++ приложения в Android Studio на компьютере (Windows)
Рисование треугольника с закрашиванием внутри в "Android Native C++ Game" для телефона | Android Studio, Android NDK, OpenGL ES v1, C++
Загрузка bmp файла из Assets и рисование текстур в "Android Native C++ Game" для телефона | Android Studio, Android NDK, OpenGL ES v2 (shader), C++
Как получить файл bmp, расположенный в Assets внутри файла apk? | Android Studio, NDK, C++
Как использовать альфа-прозрачность при отображении текстуры с помощью OpenGL? | Android Studio, OpenGL ES, NDK, C++
Почему glTexImage2D возвращает ошибку с кодом 1280 ? | Android Studio, OpenGL ES, NDK, C++
Что такое cpp и h файлы в C++? | Android Studio, NDK, C++
Как создать новый файл h и добавить в проект android NDK C++? | Android Studio, NDK, C++
Как создать новый файл cpp и добавить в проект android NDK C++? | Android Studio, NDK, C++, CMakeLists.txt
dynamic_cast в C++ (преобразование указателя в другой тип и проверка валидности во время выполнения) | Android Studio, NDK, C++
std::map<Key, Value> это набор ключей и значений в C++. | Android Studio, NDK, C++
Передаем функцию как параметр в функцию (callback) | C++ | Android Studio, NDK, C++
Как найти событие при повороте дисплея (изменении ориентации) в телефоне Android | Android Studio, NDK, C++
Как обрабатывать события в телефоне Android (создание/завершение события окна, установка фокуса, потеря фокуса, касание в телефоне) | Android Studio, NDK, C++
Создаем подписанный apk файл в Android Studio | Android NDK, OpenGL ES
Google Play Console (для разработчика)
Создаем Google Play account разработчика | Google Play Console
Разработчику в Google Play Console требуется подтвердить личность | Google Play Console
Разработчик в Google Play Console должен подтвердить аккаунт разработчика | Google Play Console
Учетная запись разработчика не используется | Учетная запись разработчика находится под угрозой закрытия | Google Play Console
Скомпилируйте приложение и отправьте его в продакшн в Google Play Console | Мое приложение в Google Play Console
Policy status "Invalid Privacy policy" | Provide link to a valid privacy policy page | Мое приложение в Google Play Console
Policy status "App must target Android 15 (API level 35) or higher" | Status "You won't be able to release app updates" | Мое приложение в Google Play Console
Policy status "App must target Android 14 (API level 34) or higher" | Status "You won't be able to release app updates" | Мое приложение в Google Play Console
Policy app content "Remove Photo and video permissions permission or submit declaration" | Мое приложение в Google Play Console
Создаем приложение в Google Play Console (в опции выбираю что это будет игра) | Моя игра в Google Play Console
Важные параметры: package, applicationId, versionCode, versionName, android:label (в AndroidManifest.xml, build.gradle) чтобы создать тестовую версию для Google Play Console | Моя игра в Google Play Console
Создаем подписанный .aab файл в Android Studio | Моя игра в Google Play Console
Компилируем игру и присылаем на внутреннее тестирование в Google Play Console | Моя игра в Google Play Console
Google автоматически запустил тесты и сделал картинки, отчет как запускается игра на разных марках телефонах | Моя игра в Google Play Console
Как задать Google Play Developer Console вопрос в поддержку?
Google Play Developer Console support feedback
Темы про Google Play Billing & in-app purchase | Google Play Console
Можно использовать (интегрировать) платежи в моей Google игре если я разработчик из Беларуси? | Монетизация в Google Play Console
Как изменить язык Google Play Console? | Google Chrome
Как изменить страну в платежном профиле? | Google Play Console
Как в Google Play посмотреть(открыть) платежную страницу? | Google Play Console

  Ваши вопросы присылайте по почте: info@dir.by  
Яндекс.Метрика