Pages

Subscribe:

Ads 468x60px

Labels

2013年5月20日 星期一

keytool -genkey -alias "C:\Users\Administrator\.android\debug.keystore" -keyalg RSA -validity 20000 -keystore android.keystore

其实Android 搭配Google Map还能实现很多功能,比如GPS导航,结合SNS实现提供各类的LBS位置服务等,本文只是带领你初窥了Android 搭配Google Map的强大功能,更多的还有待读者去实践发现。
1> android 在开发google map 项目的时候,首先需要一个android.keystore文件,该文件在
   如果是win 7 则:C:\Users\Administrator\.android\
   如果是win xp 则:C:\Documents and Settings\Administrator\.android\
下面,文件一般为:debug.keystore。如果不存在该文件,则需要参加这个文件,创建命令如下:
C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genkey -alias "C:\Users\Administrator\.android\debug.keystore" -keyalg RSA -validity 20000 -keystore android.keystore 
请注意 这个 其中参数-validity 20000 ,则个是表示 这个表示是证书有效天数。
C:\Users\Administrator\.android\debug.keystore  这个是android默认的证书地址路劲。可以在eclipse环境查看
查看方式:window->preferences->andorid->Build 右边 defualt debug keystore 即为默认路劲。
然后根据提示设置相应的内容,注意建议设置的用户名和密码统一为android ,因为eclipse中默认的证书用户名和密码也是android,如果设置其他的用户名和密码,则会带来不必要的麻烦。我就遇到过,如果设置成其他密码还要找办法去修改eclipse里面的默认密码。
生成keystore文件之后可以通过
keytool -list -alias androiddebugkey -keystore "C:\Users\Administrator\.android\debug.keystore" -storepass android -keypass android
来获取certificate's MD5 fingerprint 2> 现在我们就产生了debug模式下的MD5密纹了,要注意的是,你必须重新为生产环境下的应用重新生成一次MD5密纹,因为如果在不同的Android SDK或者不同的开发环境下,MD5密纹是不同的,否则换了环境的话Google Map将不会工作。

  产生的MD5密纹的输出如下面:
  
  1. androiddebugkey, Apr 2, 2010, PrivateKeyEntry,

  2. Certificate fingerprint (MD5): 72:BF:25:C1:AF:4C:C1:2F:34:D9:B1:90:35:XX:XX:XX
复制代码



  接下来,我们要到Google Map API的主页去申请一个Map的key了,可以访问
  http://code.google.com/android/maps-api-signup.html页面,在其中的MD5 fingerprint一栏中输入刚才生成的MD5密纹,如下图:
1.jpg
  输入后,点Generate API Key,之后会为我们产生Google Map API了,如下图,这个API是我们在程序中可以使用的。
2.jpg
  其中还给出了如何在android中使用该API的方法。

  第四步:开始创建Android Google Map应用
  其实,编写Android Map应用并不复杂,只需要继承MapActivity类就可以了。MapView这个类功能是从Google Map地图中获得数据并且展示地图。MapActivity的主要功能有:
  1) 管理Activity的生命周期
  2) 为MapView类建立和撤消相关的服务。
  在继承了MapActivity类后,我们要实现其中的isRouteDisplayed方法,这个方法其实是用来表示我们是否显示一些路线的信息,这个通常用在地图的飞行模式时才使用,这里我们不提供任何信息仅是返回false即可。
  在我们的activity中,我们将引用到MapView,它是在界面xml中定义的。同时我们也用到setBuiltInZoomControls方法设置地图允许缩放模式。
  初步的代码是这样的:
  1. package com.javacodegeeks.android.googlemaps;

  2. import android.os.Bundle;

  3. import com.google.android.maps.MapActivity;
  4. import com.google.android.maps.MapView;

  5. public class GMapsActivity extends MapActivity {
  6.     
  7.     private MapView mapView;
  8.     
  9.     @Override
  10.     public void onCreate(Bundle savedInstanceState) {
  11.         
  12.         super.onCreate(savedInstanceState);
  13.         setContentView(R.layout.main);
  14.         
  15.         mapView = (MapView) findViewById(R.id.map_view);       
  16.         mapView.setBuiltInZoomControls(true);
  17.         
  18.     }

  19.     @Override
  20.     protected boolean isRouteDisplayed() {
  21.         return false;
  22.     }
  23.     
  24. }
复制代码


而相应的界面xml文件如下:


  1. xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:orientation="vertical" 
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent">

  5.   xmlns:android="http://schemas.android.com/apk/res/android"
  6.   android:id="@+id/map_view"
  7.   android:layout_width="fill_parent" 
  8.   android:layout_height="fill_parent"
  9.   android:clickable="true" 
  10.   android:enabled="true" 
  11.   android:apiKey="API-KEY-HERE" />
  12.    

复制代码




  注意,其中要把你获得的Google Map的API KEY写到MapView控件中去。最后,记得在AndroidManifest.xml配置文件中,加上对Internet和Map的使用访问权限,其中由于Google Map的API是另外提供的API,因此也需要使用use-library标签进行说明,如下代码所示。


  1.       package="com.javacodegeeks.android.googlemaps"
  2.       android:versionCode="1"
  3.       android:versionName="1.0">
  4.       
  5.    
  6.     
  7.         
  8.                   android:label="@string/app_name">
  9.             
  10.                
  11.                
  12.             

  •         

  •         
  •       
  •       
  •    


  •    

  • 复制代码

    沒有留言:

    張貼留言