我做了一个应用程序,将手机变成网络摄像头,并使用手机连接将图像发送到互联网网络空间.
我正在使用广告活动,将警报管理器设置为每隔5或15分钟执行一次服务.要执行服务的整个执行,我会执行唤醒锁定,但在服务完成时会丢失.
所有这一切都适用于移动连接,但不同于wifi.
我已经设置wifi选项的政策"永远不会"为wifi睡眠.但过了一段时间(并不总是一样),手机似乎进入省电模式:wifi图标尚未处于状态栏,但手机无法连接.即使我使用浏览器...所以我必须断开连接并手动重新连接.logcat中的消息:notify conn break (IOEx), close connection
即使电话插上电源!!!
为什么?(1)
尝试使用由启动服务的活动形成的另一个应用程序,该服务始终使用唤醒锁定运行.所以我已经添加了wifi锁以确保连接,但是这种方法有时会运行而另一些则没有.总是一样的notify conn break (IOEx), close connection原因?(2)
最后一个实验是从第一个应用程序(警报管理器)派生出来的,并确保wifi不会进入睡眠/省电模式(女巫一个?)我已经在执行代码后将手机转为飞行模式当循环开始时我将其关闭(连接).这项工作可以使用两天,但有时它只能工作(每隔一小时或两小时,而不是每5分钟,或有时一整天都不工作,然后无任何理由重启......).那么,为什么飞机模式有时不会重新建立先前的无线连接?(还有一些时候呢?)(3)
这款手机是原装2.2的三星Galaxy ACE,总是可以充电.
我的父页面中有一个非常长的iframe.当您重新加载或单击i框架页面内的链接时,它会加载到其中,但必须向上滚动纯粹的窗口.
我已经尝试了variuos代码示例:jquery哪个事件比这更好以及 如何使用iFrame重新加载 父页面正文代码滚动父页面:
<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
$('iframe').load(function(){
$(window).scrollTop(0);
});
});</script>
<iframe frameborder="0" height="1000" id="iframe" src="http://mysite.com" width="800"></iframe>
Run Code Online (Sandbox Code Playgroud)
现在这是我在父页面中的最终代码:(这不起作用)
<script type="text/javascript">
$('iframe').ready(function(){
$(window).scrollTop(0);
});
</script>
<iframe frameborder="0" height="1000" id="iframe" align="top" src="http://foicam.altervista.org/listadinamica.php" width="800" ></iframe>
Run Code Online (Sandbox Code Playgroud)
但问题是每个代码在帧完全加载(图像包括)之后向上滚动父页面.我想要的是,父页面在iframe完成加载之前向上滚动.
如果你点击最后一张图片或向下滚动页面,然后只重新加载iframe,你会明白我的意思!
很多,很抱歉,但我发现这个语言存在于今天下午!
我是android的初学者,对java没什么经验...
我有一个创建一个ALARM MANAGER并开始alarmManager.setRepeating()指向服务的Activity .
onCreate中的此服务设置部分唤醒锁以执行代码的整个执行(该应用程序用于非用户交互,因此电话始终处于待机状态).
所有这些工作都很完美.
有时,服务不应执行整个代码,而是在执行之前退出.所以我用过 StopSelf但我有些疑惑:
onDestroyservice in Service中有删除唤醒锁的代码.不StopSelf()打电话了吗?
无论如何,如果我没有指定任何函数来终止服务,代码执行后何时终止?
所以在我的情况下,更好的替代onDestroy()而不是Stopself()?很多人!
我正在使用我的Android服务处理器,每隔60分钟(1小时)重新进行一些操作,使用PartialWakeLock保持手机不睡觉.但这会导致大量电池使用.
所以决定研究一下有人在这里写的完美的AlarmManager(我是noob).
但现在在网上阅读我发现谁使用AlarmManager,仍然需要一个WakeLock.这是真的吗?
每60分钟(1小时)运行一个循环的最佳方法是什么,而不会杀死电池?
感谢名单
PS
AlarmManager Android Developer
只要警报接收器的onReceive()方法正在执行,警报管理器就会保持CPU唤醒锁定.这可以保证在您完成广播处理之后手机不会睡眠.一旦onReceive()返回,Alarm Manager就会释放此唤醒锁.这意味着在某些情况下,只要onReceive()方法完成,手机就会休眠.如果您的警报接收器调用了Context.startService(),则手机可能会在启动所请求的服务之前休眠.为了防止这种情况,您的BroadcastReceiver和服务需要实施单独的唤醒锁定策略,以确保电话继续运行,直到服务可用.
但似乎我需要2个唤醒锁而不是使用处理程序的1个唤醒锁......这是真的吗?
自从我开始使用此功能并且尚未成功获得有效结果以来已过去几天.
我想要的基本上是将加速度矢量从设备坐标系转换为真实世界坐标.我知道这是可能的,因为我有相对坐标的加速度,我知道设备在现实世界系统中的方向.
阅读Android开发人员似乎使用getRotationMatrix()我得到R =旋转矩阵.
因此,如果我想要A(世界系统中的加速度矢量)来自A'(电话系统中的加速度矢量),我必须做到:
A=R*A'
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么矢量A总是第一个和第二个零件为零(例如:+0,00; -0,00; +6,43)
我目前的代码与此类似:
public void onSensorChanged(SensorEvent event) {
synchronized (this) {
switch(event.sensor.getType()){
case Sensor.TYPE_ACCELEROMETER:
accelerometervalues = event.values.clone();
break;
case Sensor.TYPE_MAGNETIC_FIELD:
geomagneticmatrix =event.values.clone();
break;
}
if (geomagneticmatrix != null && accelerometervalues != null) {
float[] Rs = new float[16];
float[] I = new float[16];
SensorManager.getRotationMatrix(Rs, I, accelerometervalues, geomagneticmatrix);
float resultVec[] = new float[4];
float relativacc[]=new float [4];
relativacc[0]=accelerationvalues[0];
relativacc[1]=accelerationvalues[1];
relativacc[2]=accelerationvalues[2];
relativacc[3]=0;
Matrix.multiplyMV(resultVec, 0, Rs, 0, relativacc, 0); …Run Code Online (Sandbox Code Playgroud) android ×4
java ×2
alarmmanager ×1
coordinates ×1
html ×1
iframe ×1
javascript ×1
jquery ×1
math ×1
matrix ×1
sensor ×1
service ×1
standby ×1
wifi ×1
wifimanager ×1