2016-07-21 18 views
0

Auf einigen Geräten, fragt die App richtig Berechtigungen beim sidloading. Bei anderen (Android 6.0) werden beim Sideloading keine Berechtigungen abgefragt. Die Berechtigungen sind in der manifest.xml (unten) aufgeführt und funktionieren für einige Geräte (Android 5.0) einwandfrei. Auf anderen Geräten (Android 4.0, 6.0.1) werden Berechtigungen wie gewünscht angefordert, sie scheinen jedoch nicht alle zu enthalten. Das folgende Popup ist ein Beispiel dafür, was passiert, wenn auf eine Schaltfläche zum Senden einer SMS geklickt wird.Android App Debug Apk fragt nicht nach Berechtigungen auf einigen Geräten

Ich hatte nur begrenzte Tests und die Probleme scheint ein wenig anders je nachdem, welche Android-Version das Gerät läuft. Davon abgesehen, könnte es aus etwas anderem stammen, würde ich nicht wissen.

Weiß jemand, warum das passiert?

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.catalizeapp.catalize_ss25"> 

<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<uses-permission android:name="android.permission.READ_PROFILE" /> 
<uses-permission android:name="android.permission.SEND_SMS" /> 
<uses-permission android:name="android.permission.READ_CONTACTS" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="Catalize" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".LoginActivity" 
     android:label="Catalize"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.SEARCH" /> 
     </intent-filter> 

     <meta-data 
      android:name="android.app.default_searchable" 
      android:value="Contacts" /> 
     <meta-data 
      android:name="android.app.searchable" 
      android:resource="@xml/searchable" /> 
    </activity> 
    <activity android:name=".Contacts" /> 

    <activity android:name=".Account" 
     android:theme="@style/SuperCoolAppBarActivity"/> 
     <meta-data android:name = "android.support.PARENT_ACTIVITY" 
      android:value= ".Contacts"/> 

    <activity android:name=".ReportBug"> 
     <meta-data android:name = "android.support.PARENT_ACTIVITY" 
      android:value=".Contacts"/> 
    </activity> 
</application></manifest> 

(IMAGE) When a button that should send a text message is clicked, this pops up instead of executing the action of the button

+0

können Sie uns Aktivitäten zeigen, wo Sie um Erlaubnis bitten. – tk1505

Antwort

0

Nach der Dokumentation:

Wenn das Gerät Android 6.0 oder höher ausgeführt wird, und App-Ziel-SDK ist 23 oder höher: Die App hat die Berechtigungen in dem zur Liste Manifest, und es muss jede gefährliche Erlaubnis anfordern, die es braucht, während die App läuft. Der Benutzer kann jede Berechtigung gewähren oder verweigern, und die App kann auch dann mit eingeschränkten Funktionen ausgeführt werden, wenn der Benutzer eine Berechtigungsanforderung ablehnt. Aus diesem Grund müssen Sie, obwohl Sie die Berechtigungen in Ihrer Manifestdatei deklariert haben, zur Laufzeit noch nach ihnen fragen.

Als Abhilfe können Sie eine minSdkVersion einstellen < 23, sondern auch als die Dokumentation sagt:

Hinweis: Ab Android 6.0 (API-Ebene 23), Benutzer-Berechtigungen von jeder App jederzeit widerrufen kann, sogar wenn die App auf eine niedrigere API-Ebene abzielt. Sie sollten Ihre App testen, um sicherzustellen, dass sie sich ordnungsgemäß verhält, wenn eine erforderliche Berechtigung fehlt, unabhängig davon, auf welcher API-Ebene Ihre App ausgerichtet ist. Gemäß den Best Practices für Berechtigungen sollten Sie auch mit beiden Berechtigungsmodellen testen, um eine bessere Benutzererfahrung zu gewährleisten.