2012年12月29日 星期六
2012年12月28日 星期五
2012年12月27日 星期四
2012十大熱門手機遊戲
2012年12月25日 星期二
Android程式設計 - Google Maps API v2應用程式基本架構
1. 開啟Android SDK Manager,確認已安裝Google Play services。
2. 將google-play-services_lib專案匯入到工作區。在專案開發過程google-play-services_lib專案必須維持開啟狀態。
3. 建立Android專案。
4. 將google-play-services_lib加到Google Maps API v2應用程式專案。
5. 使用debug.keystore的SHA1碼及專案套件名稱(workshop.mapapiv2)到https://code.google.com/apis/console/官網申請Google Maps API v2 key。
6. 開啟專案之AndroidManifest.xml檔,在 元素之結束標籤(
)前加入以下宣告。其中apiv2_key需置換為Google Maps API v2 key。
2. 將google-play-services_lib專案匯入到工作區。在專案開發過程google-play-services_lib專案必須維持開啟狀態。
3. 建立Android專案。
4. 將google-play-services_lib加到Google Maps API v2應用程式專案。
5. 使用debug.keystore的SHA1碼及專案套件名稱(workshop.mapapiv2)到https://code.google.com/apis/console/官網申請Google Maps API v2 key。
6. 開啟專案之AndroidManifest.xml檔,在
)前加入以下宣告。其中apiv2_key需置換為Google Maps API v2 key。
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="apiv2_key" />
7. 在AndroidManifest.xml檔 元素之前加入以下宣告,其中your_package_name需置換為自己的App專案套件名稱。
<permission
android:name="your_package_name.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission
android:name="your_package_name.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission
android:name=
"com.google.android.providers.gsf.permission.READ_GSERVICES"/>
8. 在AndroidManifest.xml檔 元素之前加入以下 宣告。
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
9. 開啟專案版面配置檔(activity_main.xml),移除預設的<TextView> ,加入以下 元件。如果Minimum Required SDK是指定為API 12之後版本, 之class屬性值可使用”com.google.android.gms.maps. MapFragment”。
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
10. 編輯專案程式檔(MainActivity.java)。將MainActivity改為繼承自FragmentActivity。注意!如果Minimum
Required SDK是指定為API 12之後版本,且版面配置檔 之class屬性值是使用”com.google.android.gms.maps. MapFragment”時,則MainActivity要直接繼承Activity。
public class MainActivity extends FragmentActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
2012年12月24日 星期一
Android程式設計 - 使用模擬器測試Google Maps API v2
Google Map API v2運行時需使用Google Play Service,由於模擬器預設並未安裝Google Play Service,因此無法直接使用模擬器測試程式,對開發程式較不方便。
在http://saleh360.blogspot.tw/2012/12/android-running-google-maps-api-v2_12.html文章有介紹如何在模擬器中安裝Google Play Service,參考該篇文章,經過測試後重新整理說明如下:
1. 建立一個4.03模擬器 (不含Google API)。
2. 修改System目錄之檔案權限,允許寫入權限。
adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
adb shell chmod 777 /system/app
3. 下載GoogleLoginService.apk、GoogleServicesFramework.apk及Phonesky.apk
GoogleLoginService.apk - www.dropbox.com/s/lfde3juixuy88rg/GoogleLoginService.apk
GoogleServicesFramework.apk - www.dropbox.com/s/9kurwyhbbuecaea/GoogleServicesFramework.apk
Phonesky.apk - www.dropbox.com/s/9x8924gtb52ksn6/Phonesky.apk
4. 安裝GoogleLoginService.apk、GoogleServicesFramework.apk及Phonesky.apk
adb push GoogleLoginService.apk /system/app/
adb push GoogleServicesFramework.apk /system/app/
adb push Phonesky.apk /system/app/
5.開啟瀏覽器,到APKTOP網站下載Google Maps
http://dl.apktops.com/app/201209/Google_Maps_6_12_0.apk
6. 開啟瀏覽器,到APKTOP網站下載Google Play Service
http://dl.papktop.com/2012/12/Google_Play_services_2_0_12.apk
新版本的Google Play Service
7. 安裝下載的Google Maps及Google Play Service
在http://saleh360.blogspot.tw/2012/12/android-running-google-maps-api-v2_12.html文章有介紹如何在模擬器中安裝Google Play Service,參考該篇文章,經過測試後重新整理說明如下:
1. 建立一個4.03模擬器 (不含Google API)。
2. 修改System目錄之檔案權限,允許寫入權限。
adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
adb shell chmod 777 /system/app
3. 下載GoogleLoginService.apk、GoogleServicesFramework.apk及Phonesky.apk
GoogleLoginService.apk - www.dropbox.com/s/lfde3juixuy88rg/GoogleLoginService.apk
GoogleServicesFramework.apk - www.dropbox.com/s/9kurwyhbbuecaea/GoogleServicesFramework.apk
Phonesky.apk - www.dropbox.com/s/9x8924gtb52ksn6/Phonesky.apk
4. 安裝GoogleLoginService.apk、GoogleServicesFramework.apk及Phonesky.apk
adb push GoogleLoginService.apk /system/app/
adb push GoogleServicesFramework.apk /system/app/
adb push Phonesky.apk /system/app/
5.開啟瀏覽器,到APKTOP網站下載Google Maps
http://dl.apktops.com/app/201209/Google_Maps_6_12_0.apk
6. 開啟瀏覽器,到APKTOP網站下載Google Play Service
http://dl.papktop.com/2012/12/Google_Play_services_2_0_12.apk
新版本的Google Play Service
7. 安裝下載的Google Maps及Google Play Service
8. 測試Google Maps API v2應用程式
2012年12月21日 星期五
Android程式設計 - 使用Google Map V3 (1) 基本架構
Google自2012.12.3起聲明不支援Map API V1,即不再增加新功能,到2013.3.3前仍接受申請Map API V1 key。Map API V2改用com.google.android.gms.maps.MapFragment,仍需申請Map API V2 key;Google Map API V3則改為Javascript API方式,使用WebView來顯示Google Map,應用程式不需再申請Google Map API key,但同一頁面免費存取次數為25000次/天。
1. 編輯一個HTML檔(例如: googleMap.html),並放置到asset目錄。在html檔中置入一個<div>標籤,大小為全螢幕,用來顯示Google Map。
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
function initialize() {
var myLatlng = new google.maps.LatLng(23.937591,120.700807); //地圖中心點
var myOptions = {
zoom: 17,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP //道路地圖
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
</script>
</head>
<body style="margin:0px; padding:0px;" onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
2. 在版面配置中加入一個WebView元件
<RelativeLayout ...>
<WebView android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</RelativeLayout>
3. 撰寫MainActivity程式,設定WebView啟用JavaScript功能,之後載入googleMap.html。
public class MainActivity extends Activity{
private static final String MAP_URL = "file:///android_asset/googleMap.html";
private WebView webView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setupWebView();
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
private void setupWebView(){
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(MAP_URL);
}
}
1. 編輯一個HTML檔(例如: googleMap.html),並放置到asset目錄。在html檔中置入一個<div>標籤,大小為全螢幕,用來顯示Google Map。
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
function initialize() {
var myLatlng = new google.maps.LatLng(23.937591,120.700807); //地圖中心點
var myOptions = {
zoom: 17,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP //道路地圖
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
</script>
</head>
<body style="margin:0px; padding:0px;" onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
2. 在版面配置中加入一個WebView元件
<RelativeLayout ...>
<WebView android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</RelativeLayout>
3. 撰寫MainActivity程式,設定WebView啟用JavaScript功能,之後載入googleMap.html。
public class MainActivity extends Activity{
private static final String MAP_URL = "file:///android_asset/googleMap.html";
private WebView webView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setupWebView();
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
private void setupWebView(){
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(MAP_URL);
}
}
訂閱:
文章 (Atom)