Podobnie jak w przypadku telefonu, dostęp do wrażliwych elementów sprzętowych, takich jak aparat i mikrofon w okularach z AI, wymaga wyraźnej zgody użytkownika. Są to uprawnienia specyficzne dla okularów, o które aplikacja musi poprosić w czasie działania, nawet jeśli ma już odpowiednie uprawnienia na telefonie.
Zadeklaruj uprawnienia w manifeście aplikacji.
Zanim poprosisz o uprawnienia, musisz zadeklarować je w pliku manifestu aplikacji za pomocą elementu <uses-permission>. Deklaracja pozostaje taka sama niezależnie od tego, czy uprawnienia dotyczą telefonu, czy funkcji okularów z AI, ale nadal musisz wyraźnie poprosić o nie w przypadku sprzętu lub funkcji specyficznych dla okularów.
<manifest ...>
<!-- Only declare permissions that your app actually needs. In this example,
we declare permissions for the camera. -->
<uses-permission android:name="android.permission.CAMERA"/>
<application ...>
...
</application>
</manifest>
Zarejestruj moduł uruchamiający uprawnienia
Aby poprosić o uprawnienia do okularów z AI, najpierw użyj metody
ActivityResultLauncher z metodą
ProjectedPermissionsResultContract, aby zarejestrować moduł uruchamiający uprawnienia.
// Register the permissions launcher using the ProjectedPermissionsResultContract. private val requestPermissionLauncher: ActivityResultLauncher<List<ProjectedPermissionsRequestParams>> = registerForActivityResult(ProjectedPermissionsResultContract()) { results -> if (results[Manifest.permission.CAMERA] == true) { isPermissionDenied = false initializeGlassesFeatures() } else { // Handle permission denial. isPermissionDenied = true } }
Najważniejsze informacje o kodzie
- Kod tworzy obiekt
ActivityResultLauncherza pomocą metodyProjectedPermissionsResultContract. Funkcja wywołania zwrotnego otrzymuje mapę nazw uprawnień i ich stanów przyznania. - Musisz określić, jakich uprawnień wymaga Twoja aplikacja, np.
Manifest.permission.CAMERAlubManifest.permission.RECORD_AUDIO.
Tworzenie funkcji żądania
Następnie utworzysz funkcję, która będzie używać modułu uruchamiającego uprawnienia aplikacji do wysyłania próśb o uprawnienia do użytkownika w czasie działania.
private fun requestHardwarePermissions() { val params = ProjectedPermissionsRequestParams( permissions = listOf(Manifest.permission.CAMERA), rationale = "Camera access is required to overlay digital content on your physical environment." ) requestPermissionLauncher.launch(listOf(params)) }
Najważniejsze informacje o kodzie
- Funkcja
requestHardwarePermissionstworzy obiektProjectedPermissionsRequestParams. Ten obiekt zawiera listę uprawnień, których potrzebuje aplikacja, oraz uzasadnienie widoczne dla użytkownika. Wyjaśnij w jasny i zwięzły sposób, dlaczego Twoja aplikacja potrzebuje tych uprawnień. - Wywołanie
launchw programie uruchamiającym powoduje uruchomienie procesu prośby o uprawnienia od użytkownika. - Aplikacja powinna prawidłowo obsługiwać wyniki przyznania i odmowy w wywołaniu zwrotnym programu uruchamiającego.
Tworzenie funkcji sprawdzania uprawnień
Następnie utworzysz funkcję, która będzie sprawdzać, czy użytkownik przyznał aplikacji uprawnienia.
private fun hasCameraPermission(): Boolean { return ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED }
Dodaj logikę prośby o uprawnienia
Na koniec utwórz logikę, która używa tych funkcji do sprawdzania i żądania uprawnień w czasie działania.
if (hasCameraPermission()) { initializeGlassesFeatures() } else { requestHardwarePermissions() }
Najważniejsze informacje o kodzie
- Jeśli użytkownik przyznał już aplikacji wymagane uprawnienia, wywoływana jest funkcja
initializeGlassesFeatures, która inicjuje działanie aplikacji. Ta funkcja jest zdefiniowana jako część aktywności aplikacji na potrzeby okularów z AI.
Poznaj proces prośby o uprawnienia
Gdy wyślesz prośbę o uprawnienia za pomocą metody
ProjectedPermissionsResultContract, system zainicjuje skoordynowany proces interakcji z użytkownikiem zarówno na okularach AI, jak i na telefonie.
Podczas procesu przyznawania uprawnień aplikacja i użytkownik mogą oczekiwać tych działań:
Na okularach z AI: na wyświetlaczu okularów pojawia się aktywność, która instruuje użytkownika, aby spojrzał na telefon, aby kontynuować.
Na telefonie: jednocześnie na urządzeniu hosta (telefonie) uruchamia się aktywność. Na tym ekranie wyświetla się podany przez Ciebie ciąg znaków z uzasadnieniem. Użytkownik może kontynuować lub anulować działanie.
Na telefonie: jeśli użytkownik zaakceptuje uzasadnienie, na telefonie pojawi się zmodyfikowane okno uprawnień systemowych Androida, w którym będzie informacja, że użytkownik przyznaje uprawnienia urządzeniu z okularami AI (a nie telefonowi). Użytkownik może formalnie przyznać lub odrzucić uprawnienia.
Otrzymywanie wyniku: po dokonaniu ostatecznego wyboru przez użytkownika działania na telefonie i okularach z AI zostaną zamknięte. Następnie wywoływane jest wywołanie zwrotne
ActivityResultLauncherz mapą zawierającą stan przyznania każdego z wymaganych uprawnień.