android学习之——紧急呼叫

本文主要探讨了Android系统中的紧急呼叫功能,从Keyguard的相关组件入手,包括EmergencyCarrierArea.java和EmergencyButton.java,详细讲解了显示紧急呼叫界面及点击后的处理流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    学习Keyguard看到紧急呼叫 顺便看看学学。

关于锁屏流程及解锁 见Android学习——Keyguard之解锁屏


从点加载布局开始:

Keyguard\EmergencCarrierArea.java

    protected void onFinishInflate() {//加载布局 
        super.onFinishInflate();
        mCarrierText = (CarrierText) findViewById(R.id.carrier_text);
        mEmergencyButton = (EmergencyButton) findViewById(R.id.emergency_call_button);

        // The emergency button overlaps the carrier text, only noticeable when highlighted.
        // So temporarily hide the carrier text while the emergency button is pressed.
        //紧急按钮重叠载文,只有当高亮。因此,当按下紧急按钮暂时隐藏载体的文字。
        mEmergencyButton.setOnTouchListener(new OnTouchListener(){
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (mCarrierText.getVisibility() != View.VISIBLE) return false;
                switch(event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        mCarrierText.animate().alpha(0);//完全透明
                        break;
                    case MotionEvent.ACTION_UP:
                        mCarrierText.animate().alpha(1);//完全显示
                        break;
                }
                return false;
            }});
    }

显示紧急呼叫的界面后点击紧急呼叫:

Keyguard\EmergencyButton.java

onFinishInflate()

    protected void onFinishInflate() {
        super.onFinishInflate();
        mLockPatternUtils = new LockPatternUtils(mContext);
        mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
        setOnClickListener(new OnClickListener() {
            public void onClick(View v) {//点击
                takeEmergencyCallAction();
            }
        });

        mIsSecure = mLockPatternUtils.isSecure(KeyguardUpdateMonitor.getCurrentUser());

        updateEmergencyCallButton();
    }
显示紧急拨号器或用户返回到现有的呼叫

takeEmergencyCallAction()

   public void takeEmergencyCallAction() {
        MetricsLogger.action(mContext, MetricsLogger.ACTION_EMERGENCY_CALL);
        mPowerManager.userActivity(SystemClock.uptimeMillis(), true);
        try {
            ActivityManagerNative.getDefault().stopLockTaskMode();
        } catch (RemoteException e) {
            Slog.w(LOG_TAG, "Failed to stop app pinning");
        }
        if (isInCall()) {//正在通话
            resumeCall();
            if (mEmergencyButtonCallback != null) {
                mEmergencyButtonCallback.onEmergencyButtonClickedWhenInCall();
            }
        } else {
            KeyguardUpdateMonitor.getInstance(mContext).reportEmergencyCallAction(
                    true /* bypassHandler */);

            int phoneId = getCurPhoneId();
            if (phoneId == -1) {//-1是没PIN/PUK锁,0-3是PIN/PUK锁
                phoneId = mEccPhoneIdForNoneSecurityMode;
            }
            mEmergencyButtonExt.customizeEmergencyIntent(INTENT_EMERGENCY_DIAL, phoneId);


            getContext().startActivityAsUser(INTENT_EMERGENCY_DIAL,
                    ActivityOptions.makeCustomAnimation(getContext(), 0, 0).toBundle(),
                    new UserHandle(KeyguardUpdateMonitor.getCurrentUser()));
        }
    }
如果不能理解返回通话见下图,即正在打电话时回到锁屏状态下的keyguard界面。

剩下的不想说了···用到再跟



12-25
WinHex是一个专门用来对付各种日常紧急情况的小工具。它可以用来检查和修复各种文件、恢复删除文件、硬盘损坏造成的数据丢失等。同时它还可以让你看到其他程序隐藏起来的文件和数据。总体来说是一款非常不错的 16 进制编辑器。得到 ZDNetSoftwareLibrary 五星级最高评价,拥有强大的系统效用。 13.2 SR-11 更新内容: * 在目录浏览器列头添加新的快速过滤按钮,可以动态修改过滤设置。 * 修改索引算法,索引文件现在相当小。以前的索引文件将不能在这个版本中使用。 * 报告表格式修改为 tab 分隔文本文件,可以动态过滤或牵引。 * 注释现在使用 Unicode 字符集。 * 容器标题、文件名、描述、图象文件名、证据对象标题、注释、命令行参数全部使用 Unicode 字符。 * 现在可以在容器根目录选择证据对象查看。 * v13.2 保存的安全将不能用以前版本的 X-Ways Forensics 打开,它不能从以前版本的案例中导入某些项目。 * 书签列表同证据对象关联。 * 证据对象的名称在目录浏览器中单独的列中显示。这个字段在递归资源管理容器根和报告表中以及导入中起到很重要的作用。 * 丢失分区可以通过 X-Ways Forensics 找回。 * 重新创建 FAT 卷快照可以识别文件被重命名或移动。 * 支持 UDF 光盘格式中的多重会话。 * 精确的驱动器盘符写入保护(默认启用)。 * 自动保护容器选项。 * 目录浏览器选项现在允许锁定左边的列。 * 在目录浏览器上下文菜单中禁用排序的能力。 * 所有信息容器的文本可以记录到 messages.txt。 * 重新创建的证据文件容器优化后在添加大量文件时有较好的性能。 * 你可以立即查看 Windows 事件日志 (.evt) 文件。(仅 forensic 授权) * File Type Signatures.txt 支持更多的文件类型。 * 在创建映象文件时,Forensics 显示平均数据传输量(MB/分)和平均压缩比例。 * 容器报告现在更灵活。所有组件都可以选择。 * 当验证证据对象的 hash 或计算时,结果将被添加到证据对象的技术描述中。 * 标准的模板文件扩展名修改为 .tpl。 * 一些局部修复和改进。 单文件版本哦!~
<think>好的,用户想了解或使用WinHex工具,询问它的使用方法和下载方式。首先,我需要确认用户的需求是什么。WinHex是一个十六进制编辑器和磁盘编辑器,常用于数据恢复、计算机取证等场景。用户可能需要进行磁盘分析、文件恢复,或者处理低级数据操作。 接下来,我需要检查提供的引用内容。根据引用[1],用户已经提到了使用WinHex工具,并且有下载链接。不过,引用中的链接显示的是WinHex的官方网站,可能需要确认链接是否有效。同时,引用[2]到[4]的内容似乎和WinHex无关,但用户可能在其他上下文中提到过这些,所以需要专注在引用[1]的信息上。 用户的问题分为两部分:使用方法和下载。关于使用方法,我需要简要介绍WinHex的主要功能,比如十六进制编辑、磁盘克隆、数据恢复等,并给出基本步骤。例如,打开文件或磁盘、进行编辑或分析、保存更改。同时,提醒用户谨慎操作,避免数据丢失。 关于下载,引用[1]中提到了下载地址,但实际检查提供的引用链接是否正确。根据引用[1],正确的下载链接应该是WinHex的官方网站。我需要确保提供的链接准确,并且指导用户如何从官网下载,避免第方下载带来的风险。 另外,需要注意用户可能对计算机取证或数据恢复不熟悉,所以解释时要简明易懂。同时,强调软件的合法使用,遵守相关法律法规。可能还需要提到系统兼容性,比如支持哪些Windows版本,是否有64位版本等。 最后,考虑到用户可能需要进一步帮助,生成相关问题,如系统兼容性、替代软件、数据恢复步骤等,这样用户可以根据自己的需求继续探索。</think>### WinHex工具使用与下载指南 #### 一、WinHex简介 WinHex是由X-Ways公司开发的十六进制编辑器及磁盘编辑工具,支持文件恢复、磁盘克隆、内存编辑等功能,适用于数据恢复、计算机取证等领域[^1]。 #### 二、下载方法 1. **官网下载** 访问[WinHex官方网站](https://www.winhex.com/winhex/),选择对应系统版本(Windows/Linux) *注意:需购买许可证,试用版功能有限* 2. **功能模块** - 十六进制文件编辑 - 磁盘扇区级访问 - RAID重组与内存分析 - 数据擦除与哈希校验 #### 、基础使用步骤(以文件恢复为例) ```python # 伪代码示例:文件头特征扫描 def file_recovery(disk_image): file_signatures = { "JPEG": b"\xFF\xD8\xFF", "PDF": b"\x25\x50\x44\x46" } scan_clusters(disk_image, file_signatures) ``` 1. 启动WinHex后选择"Open Disk"加载存储设备 2. 使用"Search → Find Hex Values"定位文件特征码 3. 通过"Recovery → Recover File"尝试恢复数据 4. 导出恢复文件前验证哈希值 #### 四、注意事项 - 操作前建议创建磁盘镜像(`Tools → Clone Disk`) - 修改原始存储介质可能导致数据不可逆损坏 - 支持NTFS/EXT4等20+文件系统解析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值