名称: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();
}
}
});
}
}
一款用于窃取 Facebook 登录凭证的恶意 Android 应用目前在 Google Play 商城上已经被安装超过 10 万次,而且该应用目前仍可下载(发稿时已下架)。这款恶意程序被伪装成“Craftsart Cartoon Photo Tools”卡通化应用,允许用户上传图片并将其转换为卡通...
Hackernews 编译,转载请注明出处: 研究人员披露了 TerraMaster NAS设备的关键安全漏洞的细节,这些设备可以链接到未经身份验证的远程代码执行,且具有最高权限。 埃塞俄比亚网络安全研究公司 Octagon Networks 的 Paulos yibello 在分...
早些时候,美国卫星通信服务提供商 Viasat 遭受了一轮网络攻击,结果导致中东欧地区的服务出现了中断。而由 SentinelLabs 研究人员 Juan Andres Guerrero-Saade 和 Max van Amerongen 最新发布的安全研究报告可知,这口锅应该扣在一款名为“酸雨”(...
美国联邦调查局警告食品和农业公司,要做好准备,防止勒索软件操作者在播种和收获季节攻击农业实体。联邦调查局的警告指出,以前在这些季节对6个粮食合作社的勒索软件攻击是在2021年秋收期间进行的,2022年初的两次攻击可能通过破坏种子和化肥的供应而影响种植季节。 “网络犯罪分子可能将农业合作社视为有利可...
英国国家网络安全中心(NCSC)近日向 4000 多家网店的店主发出警告,他们的网站受到了 Magecart 的攻击影响,会窃取客户的支付信息。Magecart 攻击也称网络盗取、数字盗取或电子盗取,攻击者将被称为信用卡盗取器的脚本注入被攻击的网店,以收获和窃取顾客在结账页面提交的支付和/或个人信息...
Hackernews 编译,转载请注明出处: TrickBot 是一个臭名昭著的“ Windows 犯罪软件即服务”(Windows crimeware-as-a-service,简称 caa)解决方案,被各种黑客用来提供下一阶段的有效载荷,比如勒索软件。TrickBot似乎正在做...