En el manifiesto no se agregó android.permission.READ_PHONE_STATE. permiso.
Por qué aparece el error cuando subo una nueva versión de apk, el error se muestra a continuación.
Su aplicación tiene un apk con el código de versión 1 que solicita los siguientes permisos: android.permission.READ_PHONE_STATE. Las aplicaciones que usan estos permisos en un APK deben tener una política de privacidad establecida.
He adjuntado una captura de pantalla de mi cuenta de Google Play Store.
mi archivo de manifiesto.
<?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>
Respuestas:
El manifest.xml de su aplicación tiene estos permisos para acceder a la información desde su dispositivo, pero no tiene un enlace a la política de privacidad mientras envía en Play Store. entonces recibes esta advertencia.
Necesita una política de privacidad para la aplicación si su aplicación maneja datos de usuario personales o confidenciales
Agregar una política de privacidad a la lista de la tienda de su aplicación ayuda a brindar transparencia sobre cómo trata los datos confidenciales del usuario y del dispositivo.
****** Actualización
La configuración de la política de privacidad en Google Play Console ha cambiado de ubicación.
En Google Play Console,
seleccione Presencia en la tienda> Contenido de la aplicación.
En "Política de privacidad".
fuente
Solo intente agregar esta línea a su archivo de manifiesto:
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
y agregue un atributo
xmlns:tools="http://schemas.android.com/tools"
a su<manifest>
etiqueta para definir herramientas de espacio de nombresDe la documentación para
tools:node="remove"
:fuente
Las dependencias que tengas en tu proyecto agregarán sus propios permisos. Haga lo siguiente para averiguar de dónde viene "READ_PHONE_STATE".
fuente
Si utiliza
React Native
Este problema se ha resuelto completamente aquí.
https://facebook.github.io/react-native/docs/removing-default-permissions
fuente
debe especificar la versión
min
ytarget sdk
en el archivo de manifiesto.De lo contrario
android.permission.READ_PHONE_STATE
, se agregará automáticamente al exportar su archivo apk.<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="19" />
fuente
Puede ser debido a cualquier biblioteca de terceros que pueda incluir ese permiso, por lo que, según mi experiencia en este campo, debe agregar la política de privacidad con respecto a esa información en particular, significa que si solicita permiso para obtener cuentas en su aplicación, debe declarar con su archivo de política de privacidad usamos esos datos, es decir, la dirección de correo electrónico o lo que sea con motivos como para iniciar sesión en el juego de Google Play.
También puede hacer esto
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
Espero que esto te sirva de guía en lo que puedes hacer para esta advertencia: crea una política de privacidad para tu aplicación y adjúntala a la lista de la tienda .
fuente
Es una biblioteca de terceros. Puedes encontrar al culpable en
build/outputs/logs/manifest-merger-release-report.txt
fuente
Actualmente, algunas personas se enfrentan al mismo problema debido al uso de la
12.0.0
versión lib de AdMob.Actualícelo a
12.0.1
. Esto debería arreglarlo. Puedes leer más aquífuente
Si está probando su aplicación en un dispositivo> Android 6.0, también debe pedirle explícitamente al usuario que otorgue el permiso.
Como puede ver aquí
READ_PHONE_STATE
tiene un nivel peligroso.Si un permiso tiene un nivel peligroso, el usuario debe aceptar o no este permiso manualmente. No tienes elección, DEBES hacer esto
Para hacer esto desde tu actividad ejecuta el siguiente código:
Si el usuario usa Android M y aún no otorgó el permiso, lo solicitará.
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); }
luego anula
onRequestPermissionsResult
tu actividad@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 } } } }
Deberías leer este artículo para saber más al respecto.
fuente
O
Añadir
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
a su archivo de manifiesto.
fuente
¿Utiliza AdSense u otros anuncios en su aplicación, o quizás Google Analytics? Creo que si lo hace, incluso si no tiene android.permission.READ_PHONE_STATE en su manifiesto, la biblioteca de anuncios lo agrega.
Existen plantillas gratuitas que pueden ayudarlo a crear una política de privacidad.
Este es el correo electrónico que recibí de Google al respecto:
fuente
Deberías dejar el
android.permission.READ_PHONE_STATE
permiso. Agregue esto a su archivo de manifiesto:<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
fuente
1. Debe crear una página de política de privacidad en su sitio web y actualizar su política de privacidad para los permisos que solicita.
2.Actualice el nuevo SDK, elimine los permisos no deseados y vuelva a enviar la aplicación.
fuente
Encontré este sitio web gratuito que le proporcionará la política Y la alojará:
https://www.freeprivacypolicy.com/
Luego, agréguelo a Play Store en la lista de la tienda; en la parte inferior, agregue el enlace público para la política que obtuvo de https://www.freeprivacypolicy.com/
fuente
Puede ser que necesite agregar o actualizar su política de privacidad. Puede crear fácilmente una política de privacidad con esta plantilla
https://app-privacy-policy-generator.firebaseapp.com/
fuente
Actualización de 2018:
Para los usuarios de AdMob, esto provoca la versión 12.0.0 de AdMob (actualmente la última versión). Solicita incorrectamente el permiso READ_PHONE_STATE, por lo que incluso si su aplicación no requiere el permiso READ_PHONE_STATE en el manifiesto, no podrá actualizar su aplicación en Google Play Console (le indicará que cree una página de política de privacidad para su aplicación, porque su aplicación requiere este permiso).
Vea esto: https://developers.google.com/android/guides/releases#march_20_2018_-_version_1200
Además, escribieron que publicarán una actualización a 12.0.1 arreglando esto pronto.
fuente
Me enfrentaba al mismo problema y recibí el error al cargar la aplicación en Google Play. Usé anuncios en mi aplicación y ni siquiera se me mencionó el permiso READ_PHONE_STATE en mi archivo de manifiesto. pero aún tengo este error. Luego cambio las dependencias de los anuncios en el archivo build.gradle. y luego resolvió mi problema. Resolvieron este problema en 12.0.1.
compile 'com.google.android.gms:play-services-ads:12.0.1'
fuente
Mira paso a paso y lo entenderás
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; }
fuente
Si está utilizando el paquete device_id para obtener la identificación única del dispositivo, eso agregará un
android.permission.READ_PHONE_STATE
sin su conocimiento que eventualmente conducirá a la advertencia de Play Store.En su lugar, puede usar el paquete device_info para el mismo propósito sin la necesidad de un permiso adicional. Mira este hilo SO
fuente
Si lee el mensaje con atención, verá que está utilizando los permisos como cámara, micrófono, contactos, almacenamiento y teléfono, etc. y no proporciona una política de privacidad. debe proporcionar una política de privacidad si lo hace. Puede encontrar más información sobre la política de privacidad de Android en Google.
Para agregar la política de privacidad en la consola In-Play,
Busque y seleccione Todas las aplicaciones .
Seleccione la aplicación a la que necesita agregar su Política de privacidad.
Busque la Política al final de la página.
Haga clic en Contenido de la aplicación para editar la lista de su aplicación.
Busque el campo etiquetado Política de privacidad y coloque la URL de la página de su Política de privacidad
Haga clic en Guardar y estará listo para comenzar.
Nota: Debe tener una página web pública para alojar su Política de privacidad. Google Play Store no albergará la política por ti.
fuente