当用户从系统打开和关闭手电筒时显示 toast 消息的 Android 应用程序

问题描述 投票:0回答:1

我想使用 Java 创建一个 Android 应用程序,当用户从系统而不是从应用程序打开或关闭手电筒时,它会显示 toast 消息。 我发现没有内置广播器来接收此信息,我必须为此创建自定义广播接收器。 请有人帮助构建用于手电筒状态的自定义广播接收器的逻辑。

package com.example.lab7_torch;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
import android.widget.Toast;

public class TorchChangeReceiver extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent){

        if(intent != null && intent.getAction() != null){
            if(intent.getAction().equals("android.hardware.action.Action_Torch_On")) {
                boolean isTorchOn = intent.getBooleanExtra("torch_state", false);

                if (isTorchOn){
                    Toast.makeText(context,"Torch is On", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(context,"Torch is Off", Toast.LENGTH_SHORT).show();
                }
            }
        }

}

我为自定义广播接收器尝试了此代码,但它不起作用。

java android broadcastreceiver flashlight
1个回答
0
投票

我认为没有任何广播接收器可以注册来跟踪手电筒/手电筒状态。你从哪里得到这个

android.hardware.action.Action_Torch_On

您需要使用相机管理器来跟踪手电筒/手电筒的状态。
参考:https://developer.android.com/reference/android/hardware/camera2/CameraManager

您还必须添加相机和手电筒权限才能访问状态。

© www.soinside.com 2019 - 2024. All rights reserved.