SMS_SEND 权限导致编译错误并警告防病毒

Posted

技术标签:

【中文标题】SMS_SEND 权限导致编译错误并警告防病毒【英文标题】:SMS_SEND permission causes compile error and alert antivirus 【发布时间】:2014-10-06 21:29:26 【问题描述】:

基本上,我在整个互联网上进行了搜索,发现了关于这个的大而零。

我的应用正在使用短信发送服务,我需要 SMS_SEND 权限。当我添加它并运行时 - Eclipse 说我的代码中有错误,并且防病毒警告他们阻止了 android.***.SMS_SEND.NR。我不关心后者 - 因为没有 SMS_SEND 许可它不会显示。

我发现的所有内容都在 Lint 错误检查中: "查找仅授予系统应用的权限

具有保护级别签名或 signatureOrSystem 的权限仅授予系统应用程序。如果一个应用是普通的非系统应用,它将永远无法使用这些权限。”

但最重要的是 - 使用该权限的其他应用程序很好。那么可能发生了什么?我需要该服务在该应用程序中。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mypackage.etc"
android:versionCode="1"
android:versionName="1.0">

<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="19" />

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

<application
    android:label="@string/app_name"
    android:icon="@drawable/ic_launcher"
    android:theme="@style/AppTheme">

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>

【问题讨论】:

我在 Linux 上使用 IntelliJ,我的应用程序使用 SMS_SEND 权限,我从来没有遇到任何问题。我会尝试禁用防病毒软件。 请发布您的清单。 【参考方案1】:

您的 Android AV 软件(F-Secure?)可能基于启发式或签名阻止了代码。 如果不是全部大多数 Android AV 软件毫无价值,我会先删除它。假设您没有使用 root 设备,它必须只是从清单扫描或使用包管理器中获取它。

“签名或签名或系统”不适用于 SEND_SMS 权限,虽然您可能会发现使用签名权限交叉(相同签名)应用程序的用途,但您不太可能使用它。

请向我们展示您的清单。

【讨论】:

伙计,你很好 - 是的,它是 F-Secure(在计算机上,而不是智能手机上,因为应用程序永远无法访问它)。必须改变它,但我很好奇为什么它现在发生而不是以前发生过一次?以及为什么 eclipse 也会显示此错误(抱怨的不仅仅是 antivir)。 大多数 AV 软件(如果不是全部在 Android 中)都在 Dalvik VM 实例中被沙盒化,因此如果您的设备没有植根,它只有有限的环境信息。您应该向我们展示您的清单文件。由于 AV 软件正在挑选它,如果可以的话,只需选择性地禁用它。 清单看起来不错。你从 eclipse 中得到了什么编译时错误? 哦,等等 - 禁用防病毒软件后,我现在可以运行我的应用程序了!似乎 F-Secure 是个麻烦制造者。谢谢! 让我们continue this discussion in chat。

以上是关于SMS_SEND 权限导致编译错误并警告防病毒的主要内容,如果未能解决你的问题,请参考以下文章

如果没有错误,我怎么才能显示警告?

Webpack 使用 NODE_ENV=production 编译 vue 仍然会导致开发警告

此代码在 DevC++ 中编译没有问题,但 Visual Studio 2008 发出这些警告并拒绝编译。我的错误在哪里?

由于 Direct X 版本不正确导致的编译错误

编译器警告是不是会导致智能感知停止工作?

警告:使用编译错误创建触发器?