ExploreLandmarksAllFeatures.mp4
Explore Landmarks is a reference application for HMS Kits to phones running with the android based HMS Service. Explore Landmark app is provides you to learn more information about the landmark detected from an image given by you. It scans your image and recognizes landmark that exists in the image. After that, the app gives you information about the landmark. And also it provides you to view panoramic images and panoramic videos about the landmark. Additionally, the app provides an image gallery that contains a lot of images related to the recognized landmark from the image given by you. With all of these features, the app provides you to an authentication feature, too. With this feature, you can share your saved credentials with other trusted apps or platforms. You can retrieve saved credentials and delete them if you want.
Thanks to Huawei Keyring Service you can list, save, delete and share user credentials in this app. Keyring offers the Credentials Management API for storing user credentials locally on Android phones and tablets and sharing them between different apps and different platform versions of an app. For understanding how keyring is used in this app you can look at Authentication Fragment and related classes with it.
AuthVideo.mp4
Thanks to Huawei Machine Learning you can recognize landmarks into images by this app. You have an image related to a landmark and do you forget the name of the landmark? Okay, no problem just take a photo of the image and learn the landmark information. Are you on travel and do you want to learn more information about the landmark of you visiting? Okay just take a picture of the landmark and learn the landmark information. Also, you can learn the landmark information by choosing an image that contains a landmark from the gallery.
Landmark.Recognition.mp4
You can see the recognized landmark information on this screen. And you can navigate to some screens related to the landmark. You can see details of these landmarks in this repo: The Eiffel Tower, The Sydney Opera House, The Burj Khalifa, The Kabah. When you try the repo please attention to that. Try these landmarks if you want to learn detail about the landmarks.
Thanks to Huawei Panorama Kit you can view panoramic images and panoramic videos of the landmarks in this app. There are 2 panoramic images each of The Eiffel Tower, The Sydney Opera House, The Burj Khalifa, The Kabah in this repo.
PanoramicImage.mp4
There is 1 panoramic video each of The Eiffel Tower and The Burj Khalifa in this repo.
PanoramicVideo.mp4
Thanks to Huawei Search Kit you can view more images of the recognized landmark in this app. No any landmark limitations such as Panorama Screen or Detail Screen in this feature. You can view more images (with nice animations) of any recognized landmark on this screen.
ImageGallery.mp4
Explore Landmarks app is designed with MVVM (Model-View-Viewmodel), Repository design patterns and Kotlin is used for development.
โ
HUAWEI KEYRING SERVICE
โ
HUAWEI MACHINE LEARNING KIT
โ
HUAWEI PANORAMA KIT
โ
HUAWEI SEARCH KIT
โ
HUAWEI ANALYTICS KIT
โ
HUAWEI APP GALLERY CONNECT CRASH SERVICE
โ
Hilt (DI)
โ
Architecture Components (DataBinding, ViewModel, LiveData)
โ
Coroutines
โ
Jetpack Navigation component
โ
Airbnb Lottie
โ
Facebook Shimmer
โ
KenBurnsView
โ
Glide
โ
Scrolling Pager Indicator
- A computer that can run Android Studio ๐.
- An android device with Hms Core installed and OS version Android 7 or higher (minSdk is API 24)
- Fork this repo by clicking top right and clone it to your computer.
- You need to AGConnect-Services.json file to run this project properly. Follow the below steps to
obtain it.
- Create Huawei Developer Account if you haven't got an account
- Go to the app-level build.gradle file and change the application id of the project. (You don't need to change the package name in the whole repo.)
- Create a SignIn Certificate with key0 alias, ExploreLandmarks password and named as ExploreLandmarks.jks . Actually this password and alias are not mandatory but if you want to sign with different alias or password please don't forget to change needed information in build.gradle (app:level) to with new information. Replace this file with ExploreLandmarks.jks which already exist on the app directory.
- Generate SHA-256 Fingerprint via Keytool or running the signingReport task (View => Tool Windows => Gradle => Tasks => Android => signingReport)
- Login to Huawei Developer Console if you didn't log in.
- Create a new app with the new applicationId in AppGallery and integrate the repo with it ( Creating an app, adding SHA-256 to AppGallery Connect, Downloading AgConnectServices.json file)
- Before downloading agconnect-services.json choose a Data Processing Location on Project Settings -> General Information (I recommended Germany because I use it and the search feature is worked properly with it.).
- Before downloading and moving agconnect-services.json file to the "app" folder, please make enable necessary services . For this project you have to set enable Auth Service, Account Kit, ML Kit, Search Kit, Keyring Service, Analytics Kit.
- You need to client id and client secret to obtain an access token from Account Kit via OAuth-based authentication. Get this information under Project Settings => General Information => App information => OAuth 2.0 client ID section and add them into app level build.gradle file.
- You need to app id for Search Kit . Take the "app_id" value from the agconnect-services.json file and set it to the AGC_APP_ID_VALUE value in the application level build.gradle file.
- You need to add the API key for using ML Kit on cloud services Take the "api_key" value from the agconnect-services.json file and set it to the API_KEY_VALUE value in the application level build.gradle file.
- Solution of some issues you might be faced
- Error Code 907135000 : Please move agconnect-services.json file under to app directory.
- Error Code 6003 : Enable App Signing by choosing "Let AppGallery Connect create and manage app signature for me"
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.