名称:265天气根据IP自动获得当地的天气情况 代码:iframe src="weather/weather/Weather/news_new/inc/ss258/cgi-bin/news_weather_search?city=厦门" allowTransparency="true"/iframe 说明 :这种适合于在网页的正栏插入。上面的城市可以自定,比如厦门可改成别的。定制的 *** 是修改我代码中标红的 名称。这里比较简单,直接用汉字改就行了。比如是福州的,你就直接把“厦门”改成福州就行。名称: *** 天气预报代码(四) 代码 :iframe width=160 height=230 frameborder=0 scrolling=NO src=appnews/cgi-bin/news_qq_search?city=南昌/iframe 名称: *** 天气预报代码(五) 代码 :iframe src="appnews/cgi-bin/news_qq_search?city=南昌" frameborder="0" width="160" scrolling="no" height="230"/iframe
我这边有 2227421573 不过是简单的实现天气预报,只能查看当天的天气信息, 自动定位到当前的城市,然后去查询天气信息的.
package com.nrzc.weatherstation;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import java.util.Timer;
import java.util.TimerTask;
/**
* 环境传感器
* 气象站
*/
public class MainActivity extends AppCompatActivity {
private SensorManager sensorManager;
private TextView temperatureTextView;
private TextView pressureTextView;
private TextView lightTextView;
private float currentTemperature=Float.NaN;
private float currentPressure=Float.NaN;
private float currentLight=Float.NaN;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
Timer updateTimer=new Timer("weatherUpdate");
updateTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
updateGUI();
}
},0,1000);
}
private void init(){
temperatureTextView=(TextView)findViewById(R.id.temperature);
pressureTextView=(TextView)findViewById(R.id.pressure);
lightTextView=(TextView)findViewById(R.id.light);
sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
}
private final SensorEventListener tempSensorEventListener=new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
currentTemperature=event.values[0];
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
private final SensorEventListener pressureSensorEventListener=new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
currentPressure=event.values[0];
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
private final SensorEventListener lightSensorEventListener=new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
currentLight=event.values[0];
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
@Override
protected void onResume() {
super.onResume();
Sensor lightSensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
if (lightSensor!=null)
sensorManager.registerListener(lightSensorEventListener,
lightSensor,
SensorManager.SENSOR_DELAY_NORMAL);
else
lightTextView.setText("Light Sensor Unavailable");
Sensor pressureSensor=sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);
if (pressureSensor!=null)
sensorManager.registerListener(pressureSensorEventListener,
pressureSensor,SensorManager.SENSOR_DELAY_NORMAL);
else
pressureTextView.setText("Barometer Unavailable");
Sensor temperatureSensor=sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
if (temperatureSensor!=null)
sensorManager.registerListener(tempSensorEventListener,
temperatureSensor,
SensorManager.SENSOR_DELAY_NORMAL);
else
temperatureTextView.setText("Thermometer Unavailable");
}
@Override
protected void onPause() {
sensorManager.unregisterListener(pressureSensorEventListener);
sensorManager.unregisterListener(tempSensorEventListener);
sensorManager.unregisterListener(lightSensorEventListener);
super.onPause();
}
private void updateGUI(){
runOnUiThread(new Runnable() {
@Override
public void run() {
if(!Float.isNaN(currentPressure)){
pressureTextView.setText(currentPressure+"hPa");
pressureTextView.invalidate();
}
if (!Float.isNaN(currentLight)){
String lightStr="Sunny";
if (currentLight=SensorManager.LIGHT_CLOUDY)
lightStr="night";
else if (currentLight=SensorManager.LIGHT_OVERCAST)
lightStr="Cloudy";
else if (currentLight=SensorManager.LIGHT_SUNLIGHT)
lightStr="Overcast";
lightTextView.setText(lightStr);
lightTextView.invalidate();
}
if (!Float.isNaN(currentTemperature)){
temperatureTextView.setText(currentTemperature+"C");
temperatureTextView.invalidate();
}
}
});
}
}
尽管苹果一直在警告侧载应用程序的危险性,并坚持对上架 App Store 的应用展开严格的审查。但由于 TestFlight 和 WebClips 这两项功能的存在,越来越多的恶意软件开发者正在积极利用这两大“官方漏洞”。比如欺诈者可忽悠 iPhone / iPad 用户侧带有恶意软件的应用程序,进...
Hackernews 编译,转载请注明出处: 研究员发现,黑客滥用高影响反射/放大方法,实施长达14小时的持续分布式拒绝服务攻击,放大率达到了破纪录的4294967296倍。 这种攻击载体被称为 TP240PhoneHome (CVE-2022-26143) ,已经被武器化,可以...
据TechCrunch报道,美国政府通过悬赏1000万美元来寻找能够识别或定位黑客组织Sandworm成员的信息,从而加大了对六名俄罗斯情报官员的追捕力度。黑客组织Sandworm的成员为俄罗斯军事情报部门GRU的一个部门工作–以对关键基础设施,包括食品供应和能源部门发起破坏性和毁灭性的网络攻击而闻...
伊朗国家石油产品分销公司(NIOPDC)的加油站26日停工,原因是网络攻击波及了整个分销网络。 NIOPDC网络在全国拥有3500多个加油站,80多年来一直供应石油产品。 调查机构正在查找造成破坏的原因,目前还没有公开说明幕后黑手的信息,但伊朗正在指责一个敌对国家。 并非全无线索,ISNA 通讯社首...
微软披露其已经缓解了一场发生于8月份的2.4Tbps分布式拒绝服务(DDoS)攻击。这次攻击针对欧洲的一个Azure客户,比微软在2020年记录的最高攻击带宽量高出140%。它也超过了之前最大的攻击2.3Tbps的峰值流量,这是在去年针对亚马逊网络服务的攻击。 微软表示,这次攻击持续了10多分钟,...
在美国遭受多次利用开源软件漏洞的攻击后,包括苹果在内的科技公司高管将于周四参加白宫的网络安全会议。1月13日星期四的会议是由于发现了开源Log4j软件的漏洞而专门召开的,该软件在国际上被用于应用程序的数据记录。 白宫国家安全顾问杰克-沙利文在12月写信给大科技公司的首席执行官,说这种开源软件是一个”...