我研究了ACTION_MEDIA_BUTTON意图,我试图使用它并拦截按钮按下并使用吐司将它们呈现在屏幕上.我注册了接收器来拦截两个意图:
ACTION_HEADSET_PLUG - 插入耳机
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来测试代码.
我看了所有类似的帖子并尝试了一切.不幸的是似乎没有任何作用
我试图建立一个地图减少工作.
它运行完成但最后会出现奇怪的数据.
当我尝试使用system.out.println("调试数据")调试它时,它不会显示在屏幕上.
使用java API生成外部日志文件,尝试使用log.severe("日志数据")或使用log4j logger方法log.info(日志数据)打印到屏幕上不能正常工作/
只有在地图缩减作业中出现异常时,我才能看到调试消息.
如何修复,以便我可以在文件或屏幕上看到我的调试消息?
我写了一个地图减少我想要调试的代码.
为了做到这一点,我不能使用标准输出,因为除非发生错误,否则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) 作为项目的一部分,我需要在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)