权限拒绝:需要 android.permission.READ_PHONE_STATE

2023-11-26

我正在尝试在 Android 应用程序中检测电话,但在接到电话时收到以下消息:

08-23 15:16:04.685  Vodafone VFD 600    Warning 850 BroadcastQueue  Permission Denial: receiving Intent { act=android.intent.action.PHONE_STATE flg=0x10 (has extras) } to com....LogCalls requires android.permission.READ_PHONE_STATE due to sender android (uid 1000)
08-23 15:16:04.549  Vodafone VFD 600    Warning 850 BroadcastQueue  Permission Denial: receiving Intent { act=android.intent.action.PHONE_STATE flg=0x10 (has extras) } to com....LogCalls requires android.permission.READ_PRIVILEGED_PHONE_STATE due to sender android (uid 1000)

我的 AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com...." android:installLocation="preferExternal">
    <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="27" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
  <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <application android:label="myapp" android:icon="@drawable/logo">
    </application>
</manifest>

还有我的广播接收器:

[BroadcastReceiver]
[IntentFilter(new[] {TelephonyManager.ActionPhoneStateChanged,Intent.ActionNewOutgoingCall })]
public class LogCalls : BroadcastReceiver
{
    public override void OnReceive(Context context, Intent intent)
    {
        if (intent.Action == TelephonyManager.ActionPhoneStateChanged)
        {
            Console.WriteLine("state changed");
        }
    }
}

我缺少什么?


首先,第三方应用程序不得获取READ_PRIVILEGED_PHONE_STATE允许。看特权权限白名单:

特权应用程序是位于系统映像上的 /system/priv-app 目录中的系统应用程序。从历史上看,设备实施者几乎无法控制哪些签名|特权权限可以授予特权应用程序。从 Android 8.0 开始,实现者可以在 /etc/permissions 目录中的系统配置 XML 文件中显式将特权应用列入白名单。这些 XML 文件中未明确列出的应用程序不会被授予特权。

其次,当您的应用程序在 API 23 及更高版本上运行时,您需要首先要求用户授予您READ_PHONE_STATE运行时的权限,因为它被认为是“危险”权限(请参阅权限概览).

您需要按照以下网址的说明进行操作请求应用程序权限在运行时向用户请求权限,只有授予该权限后,您才能BroadcastReceiver接收意图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

权限拒绝:需要 android.permission.READ_PHONE_STATE 的相关文章

  • 如何在android中录制音频时暂停背景音乐

    我正在 Android 中开发一个音频记录应用程序 因此 如果设备音乐播放器中已播放任何背景音乐 则应在开始录制之前暂停该背景音乐 并且每当录制停止或暂停时 背景音乐都应恢复 播放录制的音频时也应该如此 有人可以帮我解决这个问题吗 提前致谢
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 带有空白白屏的 WebView

    我在 DialogFragment 中有一个 webview 它使用以下方式显示文档和 PDF它可以进行几次尝试 但如果用户尝试频繁打开和关闭对话框 webview 将显示空白屏幕 我已经尝试了所有的线程link1 https stacko
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • Android:如何通过右侧的十字按钮清除EditText

    我创建了一个EditText用于搜索 左侧包含搜索图标 右侧包含图标
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 基于BluetoothChat示例通过蓝牙套接字发送文件

    大家好 根据我之前问的一个问题 我已经能够将文件转换为其他字节数组 以便使用以下写入方法 public void sendFile Log d TAG sending data InputStream inputStream null Ur
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • Android应用程序kill事件捕获

    我想在我的应用程序被终止时执行一些操作 可以使用哪种方法来实现此目的 我正在开发 Android 5 0 这个问题的关键在于 您必须了解您的申请是否可以收到任何 当您的应用程序在任何情况下被终止时的额外回调 下面的答案是由德文连线 http
  • Amazon IAP 不会调用 onPurchaseResponse

    我有一个 Android 应用程序 它使用 IAP 我正在发送PurchasingManager initiateGetUserIdRequest 并得到用户识别成功 in onGetUserIdResponse 得到回复后Purchasi
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 尝试使用带有有效购买令牌的 Java Google Play Developer API v3 检索应用内购买信息时出现错误请求(无效值)

    当使用 Java Google Play Developer API 版本 3 并请求有效购买令牌的购买信息时 我收到以下异常 API 调用返回 400 Bad Request 响应以及以下消息 code 400 errors domain
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 根据引用者限制对AWS S3存储桶的访问

    我试图限制对 S3 存储桶的访问 并仅允许基于引用来源的列表中的某些域 存储桶策略基本上是 Version 2012 10 17 Id http referer domain lock Statement Sid Allow get req
  • Sphinx LaTeX 标记限制

    我正在尝试在 Sphinx 版本 1 1 2 1 的多行数学模式中做三件非常基本的事情 即使在数学模式下 也将下划线写入变量名称的一部分 Use the big biggl等 构成大括号和圆括号的分隔符 并包括常规文本作为方程的一部分 请注
  • 从远程通知打开 ViewController

    当我的应用程序捕获远程通知时 我想打开 ViewController 当我收到通知时 我想打开一个 SimplePostViewController 所以这是我的 appDelegate var window UIWindow var na
  • spring data r2dbc可以生成schema吗?

    我正在使用 R2DBC 和 H2 创建一个快速项目 以熟悉这种新的反应性东西 制作了一个扩展 ReactiveCrudRepository 的存储库 只要我使用 DatabaseClient 发出与我的实体首先匹配的 CREATE TABL
  • 跨多个区域的 AppEngine 负载均衡

    据我所知 AppEngine 项目仅定义为一个区域 Google 会自动为您处理负载平衡 但是 如果我在世界各地的不同地区有应用程序 在不同的项目中 因为这似乎是一个要求 那么我如何使用 Google Cloud 中的 HTTPS 负载均衡
  • 保存 matplotlib python 函数生成的图

    我创建了一个函数 它从数据集中获取一系列值并输出一个图 例如 my plot location dataset min temperature max temperature 将返回函数中指定温度范围内的降水图 假设我想保存加利福尼亚州 6
  • Jquery UI 选项卡:关闭选项卡时如何隐藏选项卡及其相应的 div

    我使用了 Jquery UI 选项卡 并为选项卡提供了关闭选项 默认情况下 我创建三个选项卡及其相应的三个 div 现在 当我关闭选项卡时 选项卡及其 div 将被删除 我需要隐藏选项卡和 div 当我单击 添加选项卡 时 我应该只显示隐藏
  • 创建 shell 脚本以在 Linux 上运行 Java 程序

    我创建了一个同步两个目录内容的java程序 该程序将两个目录的位置作为参数来同步它们 同步信息存储在每个目录内的 JSON 格式文件中 我有一个参考库json simple 1 1 1 jar 我在 Windows 上从 Eclipse 运
  • 带括号和不带括号的方法调用的优先级是什么?

    以前的答案 The answer到类似的question是错的 Ruby 中都没有提到方法调用文档也不在社区维基 不带括号的方法调用 比 高or or似乎比不带括号的方法调用具有较低的优先级 puts false or true 相当于 p
  • 如何使用 async/await 返回 Ajax 结果? [复制]

    这个问题在这里已经有答案了 试图熟悉async await 我在 Chrome 中尝试了以下代码 async function f return await get var result f but result不保存结果 字符串 相反 它
  • 在 R 包中包含命令行脚本

    我有兴趣为我正在编写的名为 Slidify 的 R 包提供命令行界面 它用Rscript我认为这将使其成为跨平台的 脚本存储在子目录中inst slidify 为了从任何目录使用该脚本 我将其路径添加到我的 bash profile就像我在
  • 与特定用户以只读方式共享 GitHub 上的私有 git 存储库

    我终于想学习如何 git 所以我正在 GitHub 上写一篇关于版本控制的相当广泛的论文 我有一个freeGitHub pro 帐户 感谢我的大学 所以我可以添加私人存储库 我需要添加我的主管 以便他可以访问这些文档 但我希望他的 GitH
  • 方法名称是否会编译到 EXE 中?

    做类 方法和变量姓名包含在邮件中将 Windows 应用程序项目编译成 EXE 后 For 混淆 名称越少 逆向工程就越困难 And for 表现 名称更短 访问速度更快 e g 因此 如果方法是通过名称调用的 保留名字short 更好的命
  • 是否可以在控制器内获取当前的 Unity 容器

    我像这样注册了统一容器 var container new UnityContainer container RegisterType
  • 在 Node.js 中管理会话? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 在 Node js 中管理会话变量的最佳方法是什么 有图书馆吗 您可以使用以下方法轻松做到这一点 连接 http senchalabs github com connect Connect
  • 如何为库设置 TypeScript 编译器,以便 Webpack 在依赖项目中删除未使用的模块?

    主题库初步说明 很抱歉占用您的时间让您阅读本文 我写它是为了回答诸如 你在做什么 之类的问题 和 你为什么要这样做 The library由大量辅助函数和类组成 在这方面它与 lodash 类似 检查lodash的结构 但与 lodash
  • Selenium / lxml:获取 xpath

    有没有get xpath方法或在 selenium 或 lxml html 中完成类似操作的方法 我有一种感觉 我在某个地方见过 但在文档中找不到类似的东西 伪代码来说明 browser find element by name searc
  • 在 data.table 的 j 参数中使用“list”

    我正在学习 data table 属性一篇博文 我试图理解 汇总表 短而窄 下的部分 首先将 data frame mtcars 强制转换为 data table gt data lt as data table mtcars gt dat
  • 异步foreach

    C 中有异步 foreach 的方法吗 其中 id s 将由该方法异步处理 而不是使用并行 ForEach This Gets all the ID s IEnumerable
  • 权限拒绝:需要 android.permission.READ_PHONE_STATE

    我正在尝试在 Android 应用程序中检测电话 但在接到电话时收到以下消息 08 23 15 16 04 685 Vodafone VFD 600 Warning 850 BroadcastQueue Permission Denial