2016-08-07 36 views
7

Czy ktoś może podsumować wady ustawienia wartości targetSdkVersion na 22, aby uniknąć obsługi uprawnień środowiska wykonawczego?Android - ustaw parametr targetSdkVersion na 22, aby uniknąć uprawnień środowiska wykonawczego, jakie są potencjalne problemy?

Po przeczytaniu dokumentów Google dotyczących tego i kilku innych wpisów przepełnienia stosu, jedyną wadą, jaką mogę znaleźć, jest to, że użytkownik może udzielić pozwolenia podczas instalacji, a następnie przejść do ustawień systemu operacyjnego i odwołać to konkretne pozwolenie dla tego konkretnego aplikacji, a następnie ponownie uruchom aplikację. Jednak z kilku przykładów okazało się, że nie jest to wcale trudne w kodzie.

Czy to naprawdę jedyna wada polegająca na użyciu opcji targetSdkVersion 22 w celu wymuszenia uprawnień podczas instalacji? Czy rzeczy pozostaną w ten sposób przez wiele lat w przyszłości?

Ponadto, jeśli na przykład użyć tych ustawień w moim pliku build.gradle:

compileSdkVersion 24 
buildToolsVersion "24.0.1" 
minSdkVersion 19 
targetSdkVersion 22 

nadal mogę uzyskać dostęp do API 23 & 24 funkcje w aplikacji lub mam ograniczone do 22 i wcześniej?

Zanim ktoś odpowie: "Najlepiej nie robić tego i żądać uprawnień w czasie wykonywania zgodnie z zaleceniami Google", tak, oczywiście, jestem tego świadomy. I tak, jestem też świadomy pewnych przykładów, które obecnie nie próbą dostarczenia kodu płytkę kotła dla poprosić o uprawnieniach wykonawczych, takich jak:

https://github.com/googlesamples/easypermissions

Jednak istnieją przynajmniej dwie sytuacje mogę myśleć gdzie byłoby bardzo korzystne żądanie uprawnień podczas instalacji i nie instalowanie aplikacji, jeśli uprawnienia nie zostały przyznane:

1) Przypuśćmy, że w połowie tygodnia pracy osoba, którą zgłoszę, zada: "Czy możesz złożyć dowód koncepcja aplikacji na Androida na piątkowe spotkanie, która pokazuje XYZ, aby pokazać niektórych gości, których mamy tego dnia? " Jeśli muszę zrzucić szybką alfa wersję aplikacji i mam tylko kilka dni, aby to zrobić, i zajmie to dużo czasu, aby połączyć podstawową funkcjonalność, a aplikacja będzie wymagała, powiedzmy, 4 uprawnień, to znacznie lepiej będzie wymagać wszystkich uprawnień podczas instalacji wersji alfa, więc mam czas, aby wydać na funkcjonalność aplikacji. Następnie, jeśli otrzymam polecenie, gdy przeniesię aplikację do wersji beta, a następnie do wersji ostatecznej, w razie potrzeby zmieniam żądania uprawnień do kolejnych w czasie wykonywania.

2) Niektóre aplikacje bezwzględnie wymagają określonych uprawnień. Na przykład, jeśli piszę aplikację OpenCV, która pobiera obrazy z aparatu, a następnie robi coś w oparciu o to, co jest lub nie jest na zdjęciach, byłoby lepiej nie pozwolić, aby taka aplikacja była instalowana na początku, jeśli użytkownik nie chce przyznać zgody kamery.

Naprawdę chciałbym, aby Google pozostawił go jako opcję żądania/wymagać uprawnień podczas instalacji, a także oferuje opcję żądania uprawnień w czasie wykonywania. Czy pojawiła się jakaś negatywna opinia programisty dotycząca decyzji, aby móc prosić o uprawnienia tylko w środowisku wykonawczym? Czy jest możliwe, że Google może zezwolić na żądania uprawnień w czasie instalacji lub uruchamiania w przyszłej wersji, w takim przypadku mógłbym po prostu użyć opcji targetSdkVersion 22 w międzyczasie?

Odpowiedz

5

Czy to naprawdę jedyna wada polegająca na użyciu opcji targetSdkVersion 22 w celu wymuszenia uprawnień podczas instalacji?

Nie. Na przykład, jeśli Twój targetSdkVersion ma 24 lub więcej, Android 7.Użytkownicy 0+ otrzymają komunikat "ta aplikacja może nie obsługiwać podzielonego ekranu" Toast podczas próby użycia aplikacji w trybie podzielonego ekranu.

Ponadto, w odniesieniu do uprawnień środowiska wykonawczego, należy pamiętać, że targetSdkVersion o wartości 22 lub niższej oznacza, że ​​użytkownik zostanie poproszony o podanie wszystkich wymaganych uprawnień podczas instalacji. Wyglądasz na to jako pozytywny. Potencjalni użytkownicy mogą się nie zgodzić. Mając wybór między aplikacją A, która żąda różnego rodzaju pozwoleń podczas instalacji a aplikacją B, która tego nie robi, użytkownicy będą mieli tendencję do wybierania aplikacji B, bez wyraźnych powodów, aby korzystać z aplikacji A. Z biegiem czasu, gdy system Android 6.0+ jest uruchamiany w większej liczbie i więcej użytkowników, aplikacje, które proszą o uprawnienia podczas instalacji, będą postrzegane jako nieumiejętne lub źle napisane, ponieważ użytkownicy będą oczekiwać, że nie będą musieli zgodzić się na uprawnienia z góry.

Czy rzeczy pozostaną w ten sposób przez wiele lat w przyszłości?

nr

nadal mogę uzyskać dostęp do API 23 & 24 funkcje w aplikacji

Tak, choć niektórzy mogą zachowywać się inaczej ze względu na swój targetSdkVersion.

Czy to możliwe, że Google może zezwolić na prośby o pozwolenie na czas zainstalowania lub uruchomienia czasu w przyszłej wersji

wszystko jest możliwe. Ogólnie Google nie omawia takich planów na przyszłość.

1

Jak stwierdzono w https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html

W drugiej połowie 2018 roku, Play wymagać będzie, że nowe aplikacje i aktualizacje aplikacji docelowej niedawno Android poziom API. Będzie to wymagane w przypadku nowych aplikacji w sierpniu 2018 r. Oraz aktualizacji istniejących aplikacji w listopadzie 2018 r. Ma to na celu zapewnienie, że aplikacje są oparte na najnowszych interfejsach API zoptymalizowanych pod kątem bezpieczeństwa i wydajności.

Wkrótce będziemy musieli kierować na najnowszą wersję pakietu SDK.