W manifeście nie dodano android.permission.READ_PHONE_STATE. pozwolenie.
Dlaczego pojawia się błąd, gdy przesyłam nową wersję apk? Błąd znajduje się poniżej.
Twoja aplikacja zawiera plik APK z kodem wersji 1, który żąda następujących uprawnień: android.permission.READ_PHONE_STATE. Aplikacje korzystające z tych uprawnień w pakiecie APK muszą mieć ustawioną politykę prywatności.
Załączam zrzut ekranu mojego konta w sklepie Google Play.
mój plik manifestu.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my.package.name">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".utils.PreferenceManager"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".SplashScreen"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:screenOrientation="portrait" />
<activity
android:name=".CategoryListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ImagesActivity"
android:screenOrientation="portrait" />
</application>
</manifest>
Odpowiedzi:
Plik manifest.xml Twojej aplikacji ma te uprawnienia dostępu do informacji z Twojego urządzenia, ale nie masz linku do polityki prywatności podczas przesyłania w Sklepie Play. więc otrzymujesz to ostrzeżenie.
Potrzebujesz polityki prywatności dla aplikacji Jeśli Twoja aplikacja obsługuje osobiste lub wrażliwe dane użytkownika
Dodanie polityki prywatności do informacji o aplikacji pomaga zapewnić przejrzystość sposobu traktowania poufnych danych użytkownika i urządzenia.
****** Aktualizacja
Ustawienie polityki prywatności w Konsoli Google Play zmieniło lokalizacje.
W Konsoli Google Play
wybierz Obecność w sklepie> Zawartość aplikacji.
W sekcji „Polityka prywatności”.
źródło
Po prostu spróbuj dodać ten wiersz do swojego pliku manifestu:
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
i dodaj atrybut
xmlns:tools="http://schemas.android.com/tools"
do swojego<manifest>
tagu, aby zdefiniować narzędzia przestrzeni nazwZ dokumentacji dla
tools:node="remove"
:źródło
Zależności, które masz w projekcie, dodają własne uprawnienia. Wykonaj poniższe czynności, aby dowiedzieć się, skąd nadchodzi „READ_PHONE_STATE”.
źródło
Jeśli użyjesz
React Native
Ten problem został tutaj całkowicie rozwiązany
https://facebook.github.io/react-native/docs/removing-default-permissions
źródło
musisz określić wersję
min
itarget sdk
w pliku manifestu.Jeśli nie,
android.permission.READ_PHONE_STATE
zostanie dodany automatycznie podczas eksportowania pliku apk.<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="19" />
źródło
Może to być spowodowane przez dowolną bibliotekę stron trzecich, która może zawierać to zezwolenie, więc z mojego doświadczenia w tej dziedzinie musisz dodać politykę prywatności dotyczącą tych konkretnych informacji, co oznacza, że jeśli poprosisz o pozwolenie na konta w swojej aplikacji, musisz zadeklarować, że z Twoim plikiem polityki prywatności wykorzystujemy te dane, tj. adres e-mail lub cokolwiek innego z powodów, takich jak logowanie w grze Google Play.
Też może to zrobić
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
Mam nadzieję, że pokieruje Cię to, co możesz zrobić w przypadku tego ostrzeżenia, utwórz politykę prywatności dla swojej aplikacji i dołącz ją do informacji o niej .
źródło
To biblioteka innej firmy. Możesz znaleźć winowajcę w
build/outputs/logs/manifest-merger-release-report.txt
źródło
Obecnie niektóre osoby borykają się z tym samym problemem z powodu używania
12.0.0
wersji AdMob lib.Zaktualizuj go do
12.0.1
. To powinno to naprawić. Możesz przeczytać więcej tutajźródło
Jeśli testujesz swoją aplikację na urządzeniu> Android 6.0, musisz również wyraźnie poprosić użytkownika o udzielenie pozwolenia.
Jak widać tutaj
READ_PHONE_STATE
mają niebezpieczny poziom.Jeśli uprawnienie ma niebezpieczny poziom, użytkownik musi zaakceptować lub nie zezwolić ręcznie. Nie masz wyboru, MUSISZ to zrobić
Aby to zrobić ze swojej aktywności, wykonaj następujący kod:
jeśli użytkownik używa Androida M i nie udzielił jeszcze pozwolenia, zapyta o to.
public static final int READ_PHONE_STATE_PERMISSION = 100; if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, READ_PHONE_STATE_PERMISSION); }
następnie zastąp
onRequestPermissionsResult
w swojej aktywności@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){ case READ_PHONE_STATE_PERMISSION: { if (grantResults[0] == PackageManager.PERMISSION_GRANTED){ //Permission granted do what you want from this point }else { //Permission denied, manage this usecase } } } }
Przeczytaj ten artykuł, aby dowiedzieć się więcej na ten temat
źródło
LUB
Dodaj
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
do pliku manifestu.
źródło
Czy korzystasz z AdSense lub innych reklam w swojej aplikacji, a może Google Analytics? Myślę, że jeśli to zrobisz, nawet jeśli nie masz android.permission.READ_PHONE_STATE w swoim manifeście, zostanie to dodane przez bibliotekę reklam.
Istnieją bezpłatne szablony, które mogą pomóc w utworzeniu polityki prywatności.
Oto e-mail, który otrzymałem w tej sprawie od Google:
źródło
Powinieneś zrezygnować z
android.permission.READ_PHONE_STATE
pozwolenia. Dodaj to do swojego pliku manifestu:<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
źródło
1. Musisz utworzyć stronę z polityką prywatności w swojej witrynie i zaktualizować swoją politykę prywatności dla uprawnień, o które prosisz.
2. Zaktualizuj nowy pakiet SDK, usuń niechciane uprawnienia i prześlij ponownie aplikację.
źródło
Znalazłem bezpłatną stronę internetową, która ustali dla Ciebie zasady ORAZ będzie ją hostować:
https://www.freeprivacypolicy.com/
Następnie dodaj go do sklepu Play w sekcji Store Listing - na dole dodaj publiczny link do polityki, którą otrzymałeś z https://www.freeprivacypolicy.com/
źródło
Może się zdarzyć, że musisz dodać lub zaktualizować swoją politykę prywatności. Za pomocą tego szablonu możesz łatwo utworzyć politykę prywatności
https://app-privacy-policy-generator.firebaseapp.com/
źródło
Aktualizacja 2018:
W przypadku użytkowników AdMob powoduje to AdMob w wersji 12.0.0 (obecnie ostatnia wersja). Błędnie żąda uprawnienia READ_PHONE_STATE, więc nawet jeśli Twoja aplikacja nie wymaga uprawnienia READ_PHONE_STATE w manifeście, nie będziesz mógł zaktualizować swojej aplikacji w Konsoli Google Play (poinformuje Cię o utworzeniu strony polityki prywatności dla swojej aplikacji, ponieważ Twoja aplikacja wymaga tego uprawnienia).
Zobacz: https://developers.google.com/android/guides/releases#march_20_2018_-_version_1200
Ponadto napisali, że wkrótce opublikują aktualizację do wersji 12.0.1, która naprawi to.
źródło
Napotkałem ten sam problem i wystąpił błąd podczas przesyłania pliku APK do Google Play. Używałem reklam w mojej aplikacji, aw moim pliku manifestu nawet nie wspomniano o uprawnieniu READ_PHONE_STATE. ale mimo to mam ten błąd. Następnie zmieniam zależności dla reklam w pliku build.gradle. a potem rozwiązało mój problem. Rozwiązali ten problem w 12.0.1.
compile 'com.google.android.gms:play-services-ads:12.0.1'
źródło
Zobacz krok po kroku, a zrozumiesz
public static String getVideoTitle(String youtubeVideoUrl) { Log.e(youtubeVideoUrl.toString() + " In GetVideoTitle Menu".toString() ,"hiii" ); try { if (youtubeVideoUrl != null) { URL embededURL = new URL("https://www.youtube.com/oembed?url=" + youtubeVideoUrl + "&format=json" ); Log.e(youtubeVideoUrl.toString() + " In EmbedJson Try Function ".toString() ,"hiii" ); Log.e(embededURL.toString() + " In EmbedJson Retrn value ".toString() ,"hiii" ); Log.e(new JSONObject(IOUtils.toString(embededURL)).getString("provider_name").toString() + " In EmbedJson Retrn value ".toString() ,"hiii" ); return new JSONObject(IOUtils.toString(embededURL)).getString("provider_name").toString(); } } catch (Exception e) { Log.e(" In catch Function ".toString() ,"hiii" ); e.printStackTrace(); } return null; }
źródło
Jeśli używasz pakietu device_id, aby uzyskać unikalny identyfikator urządzenia, spowoduje to dodanie
android.permission.READ_PHONE_STATE
bez Twojej wiedzy, co ostatecznie doprowadzi do ostrzeżenia Sklepu Play.Zamiast tego możesz użyć pakietu device_info w tym samym celu bez konieczności posiadania dodatkowych uprawnień. Sprawdź ten wątek SO
źródło
Jeśli uważnie przeczytasz wiadomość, zobaczysz, że korzystasz z uprawnień, takich jak kamera, mikrofon, kontakty, pamięć i telefon itp. I nie podajesz polityki prywatności. jeśli to zrobisz, musisz podać politykę prywatności. więcej informacji o polityce prywatności Androida można znaleźć w google
Aby dodać politykę prywatności w konsoli Play,
Znajdź i wybierz Wszystkie aplikacje .
Wybierz aplikację, do której chcesz dodać swoją Politykę prywatności.
Znajdź Politykę na końcu strony.
Kliknij Treść aplikacji, aby edytować informacje o swojej aplikacji.
Znajdź pole oznaczone Polityka prywatności i umieść adres URL strony z Polityką prywatności
Kliknij Zapisz i gotowe.
Uwaga: Aby udostępnić swoją Politykę prywatności, musisz mieć publiczną stronę internetową. Sklep Google Play nie będzie hostować zasad za Ciebie.
źródło