简体   繁体   中英

Find out which uses-permission a SmartPhone supports

I'm doing a little android app that has to run on several Huawei U8180 (A budget 2.2 Android device).

I've published the app on Google Play and even though the console shows that the model is supported by the app, it just doesn't appear on the Play Store app or, when trying to install the app via Browser, it says the device is not supported.

It is a pretty simple app, actually, and I did the whole debugging in it, but it just wont show nor install on the phone!

The requirements are these:

<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

How do I find out which <uses-permision> , or whatever else that could be, stops the app from being shown and installed on the phone?

LINKS:

The app (work in progress): https://play.google.com/store/apps/details?id=com.cimp.matitec&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5jaW1wLm1hdGl0ZWMiXQ

Huawei U8180: http://www.gsmarena.com/huawei_u8180_ideos_x1-4204.php

EDIT: Here's the Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cimp.matitec"
android:versionCode="4"
android:versionName="1.0.0.3" 
>

<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<supports-screens  
    android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"    
    android:resizeable="true"
    android:anyDensity="true"/>

<application
    android:icon="@drawable/logo_matitec"
    android:label="@string/app_name"
    android:name=".MatiTecApplication"
    android:theme="@style/Theme.MatiTec"
    android:allowBackup="true">
    <activity
        android:name=".DbTemas"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
    </activity>
    <activity 
        android:name=".Tema"
        android:screenOrientation="portrait" >
    </activity>
    <activity 
        android:name=".Modulos"
        android:screenOrientation="portrait" >
    </activity>
    <activity android:name=".social" 
        android:theme="@style/Theme.MatiTecBG"
        android:screenOrientation="portrait"
        ></activity>
    <activity android:name=".NewsFeed"
         android:theme="@style/Theme.MatiTecBG"
         android:screenOrientation="portrait"
         ></activity>
    <activity
        android:name=".Perfil"
        android:screenOrientation="portrait" >
    </activity>
    <activity 
        android:name=".Estadisticas"
        android:screenOrientation="portrait" >
    </activity>
    <activity android:name=".Login"
        android:noHistory="true"
        android:theme="@style/Theme.Matitec_login"
        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=".Lecturas"
        android:screenOrientation="portrait"
        android:theme="@style/list">
    </activity>
    <activity
        android:name=".Ejercicio"
        android:screenOrientation="portrait">
    </activity>
    <activity 
        android:name=".EjercicioDinamico"
        android:screenOrientation="portrait" >
    </activity>
    <activity 
        android:name=".ModulosEjercicios"
        android:screenOrientation="portrait" >
    </activity>
</application>

EDIT 2: The Logcat output when opening the app entry from the browser, there's something about restriction = 9

I/ActivityManager(  129): Displayed activity com.android.vending/com.google.android.finsky.activities.MainActivity: 320 ms (total 320 ms)
D/Finsky  (  508): [1] SelfUpdateScheduler.checkForSelfUpdate: Skipping DFE self-update. Local Version [80210006] >= Server Version [-1]
E/Finsky  (  508): [24] ElegantGoogleAuthUtil.ensurePlayServicesAvailable: GooglePlayServices is not available.
I/ElegantRequestDirector(  508): I/O exception (org.apache.http.NoHttpResponseException) caught when processing request: The target server failed to respond
D/PlayEventLogger(  508): ActiveExperiments changed, sending with next LogEvent
I/ElegantRequestDirector(  508): Retrying request
D/Finsky  (  508): [1] LibraryUtils.isAvailable: com.cimp.matitec not available [restriction=9].
D/Finsky  (  508): [1] DocUtils.getAvailabilityRestrictionResourceId: Item is not available. Reason: 9
D/Finsky  (  508): [1] DetailsDataBasedFragment.rebindViews: Page [class=DetailsFragment] loaded in [1087 ms] (hasDetailsDataLoaded? false)
D/Finsky  (  508): [1] LibraryUtils.isAvailable: com.cimp.matitec not available [restriction=9].
D/Finsky  (  508): [1] LibraryUtils.isAvailable: com.cimp.matitec not available [restriction=9].
D/QCRIL_MSC (   76): "RIL"=>"AMSS" [ label = "cm_ph_cmd_get_ph_info()"];
W/Finsky  (  508): [1] HistogramView.bind: No histogram data received from server
D/Finsky  (  508): [1] LibraryUtils.isAvailable: com.cimp.matitec not available [restriction=9].
D/Finsky  (  508): [1] DocUtils.getAvailabilityRestrictionResourceId: Item is not available. Reason: 9
D/Finsky  (  508): [1] DetailsDataBasedFragment.rebindViews: Page [class=DetailsFragment] loaded in [1490 ms] (hasDetailsDataLoaded? true)
V/StkAppReceiver(  565): start to check load situation:==true
V/StkAppReceiver(  565): continue action
V/StatusBarPolicy(  129): getPPPoEDeskTopIcon() mCplusWStatus= -1
D/Volley  (  508): [13] BasicNetwork.logSlowRequests: HTTP response for request=<[ ] https://android.clients.google.com/fdfe/log 0xe8d195d1 NORMAL 41> [lifetime=3491], [size=8], [rc=200], [retryCount=0]
I/Resources(  508): Loaded time zone names for en_US in 641ms.
D/Volley  (  508): [1] Request.finish: 4171 ms: [ ] https://android.clients.google.com/fdfe/log 0xe8d195d1 NORMAL 41
V/StatusBarPolicy(  129): getPPPoEDeskTopIcon() mCplusWStatus= -1
V/StkAppReceiver(  565): start to check load situation:==true
V/StkAppReceiver(  565): continue action

I guess the permissions may not be the problem. These are more or less standard permission every app wants to have today. There are some other things that are filterd by Google Playstore:

  • <supports-screens>
  • <uses-configuration>
  • <uses-feature>
  • <uses-library>
  • <uses-permission>
  • <uses-sdk>

From the doku here

Check your Manifest file if there's something special.

Perhaps this might help:

<supports-screens  
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"    
android:resizeable="true"
android:anyDensity="true"/>

This is a bit old but have you tried the solutions from this question ?

My Android App shows as "this item is not compatible with your device"

Specifically, does your app require any pre-requisite on the device (gapps or other) ?

Are you somehow using the old developer console interface ? If so, have you turned on the "copy protection feature" ? this used to cause exactly this kind of problems in the past.

Is your minimum API level requirement actually 8? Because it is such a simple app, you may want to try to bump that level down to 7, or even lower if you can manage it. It may just be that the minimum API requirement is what is filtering your application for that device.

Try testing your app in an emulator that is pre 2.2.X to see if it will run without crashing, if so bump the version down and test it down the line of android releases until it crashes, then just set your minSdkVersion to that API level..

Edit: It might be worth it to check the Filters page on the Android developers site:

http://developer.android.com/google/play/filters.html

Use this statement if device does not support any features for example -

<uses-feature android:name="android.hardware.location.network" android:required="false" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:required="false"/>

in your manifest .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM