Google Map Android v2開發: 安裝運行Google Map Android v2 示例程序

轉載自:http://www.blogjava.net/xmlspy/articles/393726.html


V2 版本有幾個注意事項:

  • 只能運行在Android2.2以及以上版本的設備上
  • 不能運行在模擬器中

 

  • 在開發環境中安裝Goole Play service SDK.

(參考http://developer.android.com/google/play-services/setup.html)

  1. 在Eclipse中打開 Windows>Android SDK Manager 
    0T((W]AF]A)59ATEL6]B{DE
     
  2. 滾動條滾動到最下面,選擇 Extra>Google Play services, 然後安裝. 
    未命名  
    下載後的Google Play services SDK 保存在<android-sdk-folder>/extras/google/google_play_services/.
  3. 複製<android-sdk-folder>/extras/google/google_play_services/libproject/google-play-services_lib到任何地方.我這裏是複製到D:\code. 然後再eclipse中選擇 File > ImportAndroid > Existing Android Code into Workspace. (注意: 這裏是 Android > Existing Android Code into Workspace, 而不是General > Existing Projects into Workspace, 否則是無法導入的.) 
    未命名
  4. 導入示例程序. 
    爲了不破壞SDK中的程序的原樣,我們先把示例程序複製一份出來. 
    複製
    <android-sdk-folder>/extras/google/google_play_services/samples/mapsD:\code 下. 
    然後選擇File > ImportAndroid > Existing Android Code into Workspace,把此程序導入到Eclipse中.(注意: 這裏是 Android > Existing Android Code into Workspace, 而不是General > Existing Projects into Workspace, 否則會出現大量錯誤.
    未命名
      
    這個工程導入後可能會出現很多問題,請嘗試使用以下方法解決: 
        1. 在此工程上點擊右鍵,選擇Properties>Android, 在右下方的Library選項中如果出現紅叉,先把它刪除,然後點擊添加按鈕,把前面導入的google-play-services_lib工程加進來 
        2. 另一個問題就是android.support找不到,這個是缺少android-support-v4.jar,可以通過在工程上點擊右鍵,選擇Android Tools > Add Support Library, 會從網絡上下載.如果網絡下載有問題,也可以在工程中新建目錄libs,然後把此文件從<android-sdk-folder>\extras\android\compatibility\v4\android-support-v4.jar複製到新建目錄一個就可以了. 

獲得Google Maps API Key 在V2版本中需要如下幾個步驟:

  1. 查看程序簽名的SHA1認證指紋. 
    在開發模式下,默認會使用C:\Users\<你的用戶名稱>\.android\debug.keystore這個自動生成的debug狀態的簽名文件,可以通過Windows>Preferences>Android中的Default debug keystore進行查看. 
    接下來進入你的系統的命令行控制檯中,切換到你安裝的JDK的bin目錄中輸入keytool -v -list -keystore C:\Users\<你的用戶名稱>\.android\debug.keystore,密碼是android,查看"證書指紋"中的SHA1中的內容,這個內容記下來,接下來會使用到. 
    未命名

  2. 創建Google Maps API Key. 
    訪問Google APIs Console(https://code.google.com/apis/console).如果沒有登錄,就先登錄.登錄後,如果是首次使用,會出現讓你創建API工程的頁面. 
    未命名 
    點擊Create project後會跳轉到services頁面,需要在這個頁面選擇你要使用的API.這裏我們選擇Google Maps Android API v2. 
    未命名 
    之後會跳轉到服務條款確認的頁面,接受後,在顯示的頁面中左邊列表選擇”API Access”,然後點擊Create new Android key... 按鈕. 
    TM截圖未命名 
    在彈出的對話框中填寫SHA1認證指紋和程序的包命,中間用分號分隔(google自帶的google map v2示例程序的包命是com.example.mapdemo): 
    0E:10:94:C7:B9:FD:15:62:27:FC:E7:FC:0C:05:59:A7:18:41:F5:B2;com.example.mapdemo 
    點擊create按鈕後,就創建了一個新的API key: 
    TM截圖未命名

  • 配置運行示例程序

  1. 打開示例程序的AndroidManifest.xml, 把上面生成的API key複製到以下位置: 
    TM截圖未命名

  2. 現在,這個程序可以在手機中運行了(不能運行在模擬器中).如果手機中沒有安裝Goole Play Services和Google Map,程序會崩潰,在Android Logcat視圖中可以看到提示相關東西沒有安裝.這種方式非常不友好,我們應該添加一些代碼,提示用戶安裝安裝缺少的東西. 
    在MainActivity.java中的最下面添加如下代碼: 
        //=======  For Google Maps Check============
    
        public boolean isGoogleMapsInstalled() {
            try {
                ApplicationInfo info = getPackageManager().getApplicationInfo("com.google.android.apps.maps", 0);
                return true;
            } catch (PackageManager.NameNotFoundException e) {
                return false;
            }
        }
    
        public OnClickListener getGoogleMapsListener() {
            return new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Intent intent = new Intent(Intent.ACTION_VIEW,
                            Uri.parse("market://details?id=com.google.android.apps.maps"));
                    startActivity(intent);
    
                    //Finish the activity so they can't circumvent the check
                    finish();
                }
            };
        }


    然後在onCreate方法中添加一些代碼,如下: 
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            ListAdapter adapter = new CustomArrayAdapter(this, demos);
    
            setListAdapter(adapter);
    
            //=======  For Google Maps Check============
            if (!this.isGoogleMapsInstalled()) {
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setMessage("Install Google Map ?");
                builder.setCancelable(false);
                builder.setPositiveButton("Install", getGoogleMapsListener());
                AlertDialog dialog = builder.create();
                dialog.show();
            }
        }


    現在再運行,就會提示用戶安裝缺少的內容. 
發佈了5 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章