如果有通话许可,如何使应用与平板电脑兼容?

时间:2018-01-19 14:20:54

标签: android screen compatibility tablet

我最近发布了一个用于制作的应用程序,并且我已经使用了API级别19,所以它应该适用于任何Android高于4.4的手机。人们可以毫无问题地将它安装在手机上。突然之间,有平板电脑的人开始抱怨说,当他们使用Google Play时,会显示"此应用与您的设备不兼容,因此他们无法安装它。其中一个在平板电脑上安装了Android 6,所以理论上它应该没有任何问题。然而,另一个人说,在Android 7.1.1平板电脑上安装它没有问题。

感谢@tyczj的评论,在询问了一些平板电脑用户之后,我意识到兼容性问题之一就是应用程序需要获得电话许可,这在所有平板电脑中都不可用。因此,我想知道是否有任何方法可以将其提供给没有SIM卡的平板电脑,但具有相同的权限,这将使其在手机上完全正常运行。有没有办法为没有SIM卡/通话功能的平板电脑添加这些权限的例外?

下面我从Manifest中提取了部分:



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

  <
  uses - permission android: name = "android.permission.INTERNET" / >
  <
  uses - permission android: name = "android.permission.CALL_PHONE" / >
  <
  uses - permission android: name = "android.permission.VIBRATE" / >
  <
  uses - permission android: name = "android.permission.WRITE_EXTERNAL_STORAGE" / >
  <
  uses - permission android: name = "android.permission.CAMERA" / >
  <
  uses - permission android: name = "android.permission.ACCESS_FINE_LOCATION" / >
  <
  uses - permission android: name = "android.permission.ACCESS_COARSE_LOCATION" / >
  <
  uses - permission android: name = "android.permission.ACCESS_NETWORK_STATE" / >


  <
  application
android: allowBackup = "true"
android: icon = "@mipmap/app_logo"
android: label = "@string/app_name"
android: roundIcon = "@mipmap/app_logo"
android: supportsRtl = "true"
android: theme = "@style/AppTheme" >
  <
  activity android: name = ".MainScreenActivity" >
  <
  intent - filter >
  <
  action android: name = "android.intent.action.MAIN" / >

  <
  category android: name = "android.intent.category.LAUNCHER" / >
  <
  /intent-filter> <
  /activity> <
  activity android: name = ".MainMenu" / >

//And some other activities below
&#13;
&#13;
&#13;

Gradle:

&#13;
&#13;
pply plugin: 'com.android.application'



android {
  compileSdkVersion 26
  defaultConfig {
    generatedDensities = []
    applicationId "package_name"
    minSdkVersion 19
    targetSdkVersion 26
    versionCode 30 
    versionName "30"
    multiDexEnabled true
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true


  }
  aaptOptions {

  }
  buildTypes {
    release {
      minifyEnabled false
      crunchPngs false
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

dependencies {
  //Here are the dependencies
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

您需要另外声明uses-feature以获得您的许可。在此声明中,您可以指定您的应用是否必须使用特定权限。

def save_items
  @items_to_save.each do |item|
      item.save
  end
end

此处<uses-feature android:name="string" android:required=["true" | "false"] android:glEsVersion="integer" /> 是权限描述符,name是确定您的应用是否必须使用该权限/功能的标志。

尝试将其添加到required文件中:

AndroidManifest.xml