2015-12-21 55 views
9

我的應用程序處於BETA測試階段。它與iBall平板電腦(平板電腦具有SIM卡功能)以及運行棉花糖的Nexus5兼容,但與運行棉花糖的Nexus7不兼容(也與Nexus10兼容,但我沒有檢查它)。我不確定哪個權限導致此問題。還是因爲targetSdkVersion? (我不認爲targetSdkVersion導致此請糾正我,如果我錯了。)應用程序與運行棉花糖的Nexus7不兼容

清單

<uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
    <uses-permission android:name="android.permission.USE_CREDENTIALS" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

    <uses-feature android:name="android.permission.RECEIVE_SMS" android:required="false" /> 
    <uses-feature android:name="android.permission.READ_SMS" android:required="false" /> 
    <uses-feature android:name="android.permission.READ_PHONE_STATE" android:required="false" /> 

    <permission 
     android:name="in.company.company.permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 

    <uses-permission android:name="in.company.company.permission.C2D_MESSAGE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 

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

的build.gradle

compileSdkVersion 23 
    buildToolsVersion '23.0.1' 

    defaultConfig { 
     applicationId "in.company.company" 
     minSdkVersion 16 
     targetSdkVersion 21 
     versionCode 8 
     versionName "1.7" 
     multiDexEnabled true 
    } 

而且,我沒有在開發者控制檯上載任何平板電腦屏幕截圖目前,該應用程序專爲手機設計,但我想讓它可用於所有的Android設備。我需要看什麼?

在此先感謝。

+0

您的編譯SDK版本和目標SDK版本不同。你可以讓它一樣,並嘗試? –

+0

@JayakrishnanSalim:應用程序與運行棉花糖的Nexus5兼容。 – Hemanth

+0

您可以嘗試刪除支持屏幕部分嗎?如果你允許每個設備都沒有必要。 – Christopher

回答

4

可能是您的平板電腦不支持手機等功能。這就是爲什麼它與權限衝突的原因。 它像

<!-- features --> 
<uses-feature android:name="android.hardware.telephony" android:required="false" /> 

其他可能的特點進行有:

android.hardware.camera

android.hardware.camera.autofocus

android.hardware.location.gps

android.hardware.location

android.hardware.location.network

您可以check all the Features Required在您的應用程序。

+0

我看到這是downvoted,但我認爲這是問題。我有一個包含SMS的應用程序,並且必須使用此確切的標籤才能在非電話設備上工作。 – spartygw

4

只需在supports-screens元素中加上這個requiresSmallestWidthDp即可。

例如,典型的手機屏幕的最小寬度爲320dp,7英寸平板電腦的最小寬度爲600dp,而10英寸平板電腦的最小寬度爲720dp。這些值通常是最小的寬度,因爲它們是屏幕可用空間的最短維度。

<supports-screens 
     android:largeScreens="true" 
     android:normalScreens="true" 
     android:requiresSmallestWidthDp="720" 
     android:resizeable="true" 
     android:smallScreens="true" 
     android:xlargeScreens="true" /> 

閱讀更多關於support-screen

一件事,如果你是編譯API 23你的代碼,那麼爲什麼使用它targetSdkVersion 21變到23(不要忘了執行權限模型爲您應用程序時,目標23 API)

注意:如果你打算讓適用於所有Android設備的應用程序,那麼你必須使用這個supports-screens元素別的谷歌玩告訴你「應用程序與此設備不兼容」或類似消息。檢查一些與平板電腦屏幕相關的舊answer

+0

如果我不使用'requiresSmallestWidthDp',默認情況下它應該可用於所有設備..對吧?此外,我現在不打算在我的應用中實施棉花糖權限系統,這就是爲什麼我將'targetSdkVersion'用作'21'。我不認爲它對這個問題負責,因爲該應用程序與運行棉花糖的Nexus5兼容。 – Hemanth

+0

不,當在谷歌播放支持上傳應用程序時,兼容設備需要屏幕參數。如果您不打算使用supports-screens元素,則某些nexus設備不支持您的應用程序。谷歌播放顯示你「應用程序與此設備不兼容」 –

相關問題