小编Gab*_*l H的帖子

如何拦截Android中耳机上的按键按下?

我研究了ACTION_MEDIA_BUTTON意图,我试图使用它并拦截按钮按下并使用吐司将它们呈现在屏幕上.我注册了接收器来拦截两个意图:

  1. ACTION_HEADSET_PLUG - 插入耳机

  2. ACTION_MEDIA_BUTTON - 按下按钮

这是在我的主要活动中完成的:

        IntentFilter mediaFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
        mediaFilter.setPriority(10000);
        registerReceiver(_receiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG));
        registerReceiver(_receiver, mediaFilter);
Run Code Online (Sandbox Code Playgroud)

这是处理按钮按下的接收器的一部分:

    if (action.equals(Intent.ACTION_HEADSET_PLUG))
    {
        Toast.makeText(context, "earphones activity",Toast.LENGTH_SHORT).show();
        if (intent.getExtras().getInt("state")==1)//if plugged
            Toast.makeText(context, "earphones plugged",Toast.LENGTH_LONG).show();
        else Toast.makeText(context, "earphones un-plugged",Toast.LENGTH_LONG).show();
    }
    else 
    if (action.equals(Intent.ACTION_MEDIA_BUTTON))
    {
        Toast.makeText(context, "button pressed",Toast.LENGTH_LONG).show();
        key=intent.getExtras().getString("EXTRA_KEY_EVENT");
        Toast.makeText(context, key,Toast.LENGTH_LONG).show();
    }
Run Code Online (Sandbox Code Playgroud)

现在处理耳机插件和拆卸的部件工作正常,但拦截按钮按下的部分不是.

是否有任何理由处理的代码ACTION_MEDIA_BUTTON不起作用?

是否需要特殊许可来拦截这样的意图?

我正在使用三星Galaxy S2来测试代码.

我看了所有类似的帖子并尝试了一切.不幸的是似乎没有任何作用

java android broadcastreceiver

13
推荐指数
1
解决办法
1万
查看次数

我该如何调试Hadoop map reduce

我试图建立一个地图减少工作.

它运行完成但最后会出现奇怪的数据.

当我尝试使用system.out.println("调试数据")调试它时,它不会显示在屏幕上.

使用java API生成外部日志文件,尝试使用log.severe("日志数据")或使用log4j logger方法log.info(日志数据)打印到屏幕上不能正常工作/

只有在地图缩减作业中出现异常时,我才能看到调试消息.

如何修复,以便我可以在文件或屏幕上看到我的调试消息?

java debugging logging hadoop mapreduce

6
推荐指数
1
解决办法
3万
查看次数

如何在使用hadoop时使用logger api编写java日志文件

我写了一个地图减少我想要调试的代码.

为了做到这一点,我不能使用标准输出,因为除非发生错误,否则Hadoop平台不会将其打印到屏幕上.

相反,我试图使用记录器,以创建日志文件.

我使用处理程序将它拆分为两个文件,遗憾的是,"严重"的日志文件是空的,而一般日志文件只记录主线程中发生的事情而不是映射减少函数.

问题如下:

有没有hadoop和日志文件的问题,还是我的记录器配置有问题?如果是这样,如何纠正它.

日志配置代码:我使用一个记录器来处理整个应用程序(这次是root logger)

public static Logger configureLogging() 
    {
        try
        {
            logger=Logger.getLogger("");
            //FileSystem hdfs=FileSystem.get(URI.create(Misc.S3FS),getConfiguration());
            logger.setLevel(Level.ALL);

            //StreamHandler handler=new StreamHandler(hdfs.create(new Path(Misc.LOGS_PATH+"mylog.log")),new SimpleFormatter());
            FileHandler handler=new FileHandler(Misc.LOGS_PATH+"mylog.xml",true);   
            FileHandler severeHandler=new FileHandler(Misc.LOGS_PATH+"mylogSevere.xml",true);
            severeHandler.setLevel(Level.INFO);
            logger.addHandler(handler);
            logger.addHandler(severeHandler);

        }
        catch (Exception e) 
        {
            e.printStackTrace();
        }
        return logger;

    }
Run Code Online (Sandbox Code Playgroud)

java logging hadoop

5
推荐指数
1
解决办法
8153
查看次数

如何使用AWS java sdk在AWS中创建负载均衡器

作为项目的一部分,我需要在amazon AWS上创建一个新的负载均衡器.我需要使用java sdk来完成它

如何使用代码设置负载均衡器?

这是我到目前为止没有成功的尝试.

//create load balancer
        CreateLoadBalancerRequest lbRequest = new CreateLoadBalancerRequest();
        lbRequest.setLoadBalancerName("loader");
        List<Listener> listeners = new ArrayList<Listener>(1);
        listeners.add(new Listener("HTTP", 80, 80));
        lbRequest.withAvailabilityZones(availabilityZone1,availabilityZone2);
        lbRequest.setListeners(listeners);

        CreateLoadBalancerResult lbResult=new CreateLoadBalancerResult();
        System.out.println("created load balancer loader");
Run Code Online (Sandbox Code Playgroud)

java load-balancing amazon-web-services amazon-elb

3
推荐指数
1
解决办法
5508
查看次数