Android:SEND_SMS未列出平板电脑的权限

时间:2015-07-24 17:31:42

标签: android sms manifest tablet telephony

我在google play上发布了我的应用程序,我的应用程序在手机和平​​板电脑上,该应用程序使用短信功能的发送,以防我们在手机上发送电子邮件,如果我们在发布我的应用程序时关闭货架数量谷歌播放,该应用程序不是从平板电脑下载 PS:对不起我的英文

这是我的清单

preg_match_all("/\[\[\[([^\]]+)\]\]\]/", $html, $mm);
                          foreach($mm as $m)
                {      
                    $i++;
                    $v=$i."-".time()."-".rand();
                    $vars["".$v.""]=$m[0];
                    $html=str_replace($m[0], "".$v."", $html);
                }    

2 个答案:

答案 0 :(得分:1)

这个问题有点老了,但是也许有人会觉得答案有用。

  1. 有两个不同的声明uses-permissionuses-feature。它们具有不同的属性集和不同的权限/功能名称。
  2. android:required声明没有uses-permission属性,因此如果指定,它将被忽略。
  3. uses-feature声明具有android:required属性,您可以将其设置为false以禁用对此特定功能的过滤。
  4. Google Play会自动从uses-permission声明中检测所需的设备硬件功能,并根据它们和uses-feature声明对搜索结果进行过滤。有关隐式过滤的更多信息,请参见Google文档here
  5. 在谈到过滤时,uses-feature声明优先于uses-permission声明。

问题清单中的错误是不正确的功能声明。在Android中区分大小写,应为

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

代替

<uses-feature android:name="android.hardware.TELEPHONY" android:required="false"/>

此修复程序之后,将不再过滤应用程序。您可以从所有权限声明中删除android:required="false",以使清单干净:

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

暗示硬件功能及其名称的权限列表也可以在Google文档here

中找到

答案 1 :(得分:0)

从您的问题中我可以理解的是,您想知道为什么当您在平板电脑上将新添加的应用安装到Google Play商店时,并不表示该应用使用此权限:

<uses-permission android:name="android.permission.SEND_SMS" android:required="false" />

这是因为平板电脑无法发送短信,只有手机可以,因此当用户访问平板电脑设备上的应用商店页面时,它会忽略此权限。

您的某个权限不适用于平板电脑,因此Google不会显示该权限。请注意,它不应该是'android:required'设置为false的地方。但是,值得单独检查其他人。