方法步驟(以安卓5.0為例)

為漳浦等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及漳浦網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站制作、成都做網(wǎng)站、漳浦網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
一、打開GPS
二、點主屏的“天氣”圖標
三、點右上角三個點的圖標
四、點“設定”
五、在下圖右側的三個紅圈處打上鉤,然后點“自動刷新”。
六、根據(jù)自己的需要選擇自動刷新的時間
七、點“確定”退出
八、可以隨時點刷新圖標來手動刷新天氣。
九、提示
1.適時刷新天氣需要開啟GPS定位。
2.在沒有WIFI的地方刷新天氣需要消耗一定的流量,刷新頻率越高,消耗流量越多。
蘋果的天氣預報和安卓的天氣預報相比,安卓的更準。蘋果的天氣預報來源比較單一,就是美國的一個公司,數(shù)據(jù)來源單一,更新頻率等都是一樣的。
而安卓手機天氣預報的來源大多數(shù)來自中央臺、中國天氣通等,其實是一樣的。但是由于友商較多,開發(fā)的軟件不一,數(shù)據(jù)來源有部分不一樣,然后更新頻率不一樣,導致了同樣的安卓機器對同一地點的預報也不一樣。更新頻率快的,它的準確性必然要高一點。
手機天氣預報來源:
手機自帶的天氣軟件上看到的天氣預報不是氣象局做的,而是第三方天氣服務公司做的。要說做天氣預報最專業(yè)還是氣象局,他們掌握著最全的氣象地面觀測、衛(wèi)星、雷達數(shù)據(jù),有著最先進的天氣預報技術研究團隊和預報模型。
雖然國家氣象局會根據(jù)相關協(xié)議,向第三方開放一定數(shù)據(jù),但不是全部的數(shù)據(jù)。所以第三方在數(shù)據(jù)不是很全的情況下,很難把天氣預報做準確。
而國家氣象局的天氣預報是最權威的,不僅預報產(chǎn)品數(shù)量多,而且更新及時。現(xiàn)在官方已經(jīng)推出了“中國氣象APP”。
以華為p10手機為例,方法如下:
1、長按手機桌面空白的地方,如下圖。
2、點擊下面窗口的天氣選項,如下圖。
3、在下面選擇窗口小工具,如下圖。
4、選擇想要設置的一個款式。
5、移動到桌面空白處,如下圖。
6、這樣就設置成功了,如下圖。
如果您使用的是華為手機,可以通過以下操作添加天氣、時鐘等桌面小工具。
1、在桌面上雙指捏合,進入桌面編輯狀態(tài)。
2、點擊窗口小工具,然后可以向左滑動查看所有小工具。
3、部分小工具(如天氣)會有多種樣式,點擊該圖標可以展開所有的樣式。向右滑動展開的樣式,可以收攏。
4、點擊需要的小工具圖標,即可將其添加到當前屏幕。如果當前屏幕沒有空間,您可以長按并拖動該圖標,將其添加到其它屏幕。
本經(jīng)驗將介紹Android如何獲取天氣預報主要使用了中國天氣網(wǎng)的接口,使用webView顯示。
工具/原料
Android Studio
方法/步驟
首先我們打開下載安裝好的Android Studio然后新建一個項目,我這里為了方便就直接添加一個Activity了
然后我們添加界面布局代碼,布局如下:
?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android=""
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
Button
android:id="@+id/bj"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/bj" /
Button
android:id="@+id/sh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sh" /
Button
android:id="@+id/heb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/heb" /
Button
android:id="@+id/cc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cc" /
Button
android:id="@+id/sy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sy" /
Button
android:id="@+id/gz"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gz" /
/LinearLayout
WebView android:id="@+id/webView1"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:focusable="false"
android:layout_weight="1"
/
/LinearLayout
然后我們添加后臺代碼:
package com.basillee.asus.demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
public class MainActivity7 extends Activity implements OnClickListener {
private WebView webView; //聲明WebView組件的對象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity7);
webView=(WebView)findViewById(R.id.webView1); //獲取WebView組件
webView.getSettings().setJavaScriptEnabled(true); //設置JavaScript可用
webView.setWebChromeClient(new WebChromeClient()); //處理JavaScript對話框
webView.setWebViewClient(new WebViewClient()); //處理各種通知和請求事件,如果不使用該句代碼,將使用內(nèi)置瀏覽器訪問網(wǎng)頁
webView.loadUrl(" "); //設置默認顯示的天氣預報信息
webView.setInitialScale(57*4); //放網(wǎng)頁內(nèi)容放大4倍
Button bj=(Button)findViewById(R.id.bj); //獲取布局管理器中添加的“北京”按鈕
bj.setOnClickListener(this);
Button sh=(Button)findViewById(R.id.sh); //獲取布局管理器中添加的“上海”按鈕
sh.setOnClickListener(this);
Button heb=(Button)findViewById(R.id.heb); //獲取布局管理器中添加的“哈爾濱”按鈕
heb.setOnClickListener(this);
Button cc=(Button)findViewById(R.id.cc); //獲取布局管理器中添加的“長春”按鈕
cc.setOnClickListener(this);
Button sy=(Button)findViewById(R.id.sy); //獲取布局管理器中添加的“沈陽”按鈕
sy.setOnClickListener(this);
Button gz=(Button)findViewById(R.id.gz); //獲取布局管理器中添加的“廣州”按鈕
gz.setOnClickListener(this);
}
@Override
public void onClick(View view){
switch(view.getId()){
case R.id.bj: //單擊的是“北京”按鈕
openUrl("101010100T");
break;
case R.id.sh: //單擊的是“上海”按鈕
openUrl("101020100T");
break;
case R.id.heb: //單擊的是“哈爾濱”按鈕
openUrl("101050101T");
break;
case R.id.cc: //單擊的是“長春”按鈕
openUrl("101060101T");
break;
case R.id.sy: //單擊的是“沈陽”按鈕
openUrl("101070101T");
break;
case R.id.gz: //單擊的是“廣州”按鈕
openUrl("101280101T");
break;
}
}
//打開網(wǎng)頁的方法
private void openUrl(String id){
webView.loadUrl(""+id+" "); //獲取并顯示天氣預報信息
}
}
然后我們點擊Android Studio上面的運行按鈕:
這里要訪問網(wǎng)絡我們要添加權限:
uses-permission android:name="android.permission.INTERNET" /
6
我們?nèi)缓罂梢栽谀M器上面可以看到獲取的天氣情況
準備工作:
1.下載華為能力SDK;
2.申請一個應用獲取appId和appkey,待會要用到。
簡單的思路就是先通過網(wǎng)絡或者gps獲取到當前位置的經(jīng)緯度,然后通過sdk查詢溫度,獲取結果。
具體步驟如下:
1.創(chuàng)建工程
把sdk中jar包拖到工程中的libs文件夾下面。
2.主類代碼如下
package com.empty.weatherreport;
import com.empty.weatherreport.WeatherUtil.SCell;
import com.empty.weatherreport.WeatherUtil.SItude;
import com.imax.vmall.sdk.android.common.adapter.ServiceCallback;
import com.imax.vmall.sdk.android.entry.CapabilityService;
import com.imax.vmall.sdk.android.entry.CommonService;
import com.imax.vmall.sdk.android.huawei.weather.WeatherService;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;
public class WeatherActivity extends Activity {
private MyHandler myHandler;
private ProgressDialog mProgressDialog;
private Location mLocation;
private boolean sdkStatus;
//Tool to get weather
/**
* CommonService
*/
private CommonService cs;
/**
* WeatherService
*/
private WeatherService weather;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_weather);
sdkStatus=false;
myHandler=new MyHandler();
//初始化業(yè)務接口實例
weather = CapabilityService.getWeatherServiceInstance();
//實例化CommonService
cs=CommonService.getInstance();
initSDK();
}
private void initSDK()
{
//應用ID,請去iMAX平臺注冊申請
String appId="******";
//應用Key
String appKey="******";
//通過CommonService調(diào)用鑒權接口,在調(diào)用其它能力前必須保證鑒權初始化成功
cs.init(WeatherActivity.this,appId, appKey, new ServiceCallback() {
public void onError(String arg0) {
// TODO Auto-generated method stub
//設置消息
Message msg = new Message();
msg = new Message();
msg.what = 2;
msg.obj = "SDK initialize failed!";
myHandler.sendMessage(msg);
}
public void onComplete(String arg0) {
// TODO Auto-generated method stub
//設置消息
Message msg = new Message();
msg = new Message();
msg.what = 2;
msg.obj = "SDK initialize success!";
sdkStatus=true;
myHandler.sendMessage(msg);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_weather, menu);
return true;
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
// TODO Auto-generated method stub
if(item.getItemId()==R.id.menu_settings) Toast.makeText(getApplicationContext(), "Ha", Toast.LENGTH_SHORT).show();
if(item.getItemId()==R.id.menu_weather)
{
if(sdkStatus)
{
/** 彈出一個等待狀態(tài)的框 */
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("Waiting...");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgressDialog.show();
WeatherThread m = new WeatherThread();
new Thread(m).start();
}
else
Toast.makeText(getApplicationContext(), "SDK not installed", Toast.LENGTH_SHORT).show();
}
return super.onMenuItemSelected(featureId, item);
}
/** 顯示結果 */
private void showResult(String s) {
String tmp[]=s.split("\"");
for(int i=0;itmp.length;i++)
Log.i("tmp"+i, tmp[i]);
new AlertDialog.Builder(this) .setTitle("Weather") .setMessage("latitude:"+mLocation.getLatitude()+"\n longitude:"
+mLocation.getLongitude()+"\ntmperature:"+tmp[21]) .show();
}
class MyHandler extends Handler {
public MyHandler() {
}
public MyHandler(Looper L) {
super(L);
}
// 子類必須重寫此方法,接管數(shù)據(jù)
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
Log.d("MyHandler", "handleMessage......");
/** 顯示結果 */
switch(msg.what)
{
case 1:
Log.i("Error", "case1");
mProgressDialog.dismiss();
showResult((String)msg.obj);
break;
case 2:
Toast.makeText(getApplicationContext(), (String)msg.obj, Toast.LENGTH_SHORT).show();
break;
default:;
}
super.handleMessage(msg);
// 此處可以更新UI
}
}
class WeatherThread implements Runnable {
public void run() {
final Message msg = new Message();
msg.what=1;
try {
mLocation=getLocation(WeatherActivity.this);
weather.getWeather(Double.toString(mLocation.getLongitude()),Double.toString(mLocation.getLatitude()), new ServiceCallback()
{
public void onError(String arg0)
{
//api接口調(diào)用錯誤響應
Log.i("Error", "getWeather error:"+arg0);
//設置消息
msg.obj = arg0;
/** 關閉對話框 */
myHandler.sendMessage(msg); // 向Handler發(fā)送消息,更新UI
}
public void onComplete(String arg0)
{
//api接口調(diào)用成功響應
Log.i("Complete", "getWeather complete:"+arg0);
//設置消息
msg.obj = arg0;
/** 關閉對話框 */
myHandler.sendMessage(msg); // 向Handler發(fā)送消息,更新UI
}
});
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//Get the Location by GPS or WIFI
public Location getLocation(Context context) {
LocationManager locMan = (LocationManager) context
.getSystemService(Context.LOCATION_SERVICE);
Location location = locMan
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location == null) {
location = locMan
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
return location;
}
}
3.載manifest文件中添加權限
uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
/uses-permission
uses-permission android:name="android.permission.INTERNET"
/uses-permission
uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"
/uses-permission
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /
uses-permission android:name="android.permission.READ_PHONE_STATE" /
網(wǎng)頁標題:天氣android,天氣變冷問候語及關心話
網(wǎng)頁鏈接:http://chinadenli.net/article32/dsgsdpc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、品牌網(wǎng)站制作、網(wǎng)站改版、關鍵詞優(yōu)化、電子商務、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)