2

こんにちは、Android アプリケーションを Blackberry (apk2bar) に変換する必要があります。問題は、アプリケーションに Blackberry でサポートされていない Google マップ ライブラリが含まれているため、変換しようとすると「デプロイに失敗しました」というエラーが表示されることです。

apk2bar からの変換後に blackberry で実行される Google マップを実装する方法を教えてもらえますか。

編集:私のアプリケーションには、「com.google.android.maps」から現在の緯度経度を取得するGeoPointクラスが含まれています。これは、Googleマップが使用するライブラリですが、BBではサポートされていません。AndroidアプリケーションでのGeoPointクラスのsubsistutionについて教えてください。

4

2 に答える 2

2

これは、Web ベースのアプローチを使用して回避できます。こちらをお読みください:
http://developer.blackberry.com/android/apisupport/apisupport_mapping_support.html

于 2012-12-10T14:12:50.407 に答える
0

次の方法で、アプリケーションで Google マップを作成できます」

String initial = "<!DOCTYPE html>\r\n" + 
    "<html> \r\n" + 
    "<head> \r\n" + 
    " <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" /> \r\n" + 
    " <title>Google Maps Multiple Markers</title> \r\n" + 
    " <script src=\"http://maps.google.com/maps/api/js?sensor=false\" \r\n" + 
    " type=\"text/javascript\"></script>\r\n" + 
    "</head> \r\n" + 
    "<body>\r\n" + 
    " <div id=\"map\" style=\"width: 360px; height: 390px;\"></div>\r\n" + 
    "\r\n" + 
    " <script type=\"text/javascript\">\r\n" + 
    " var locations = ["; 
    String second= " ];\r\n" + 
    "\r\n" + 
    " var map = new google.maps.Map(document.getElementById('map'), {\r\n" + 
    " zoom: 8,"; 
    String centerPoint =""; 
    String finalpart = " mapTypeId: google.maps.MapTypeId.ROADMAP\r\n" + 
    " });\r\n" + 
    "\r\n" + 
    " var infowindow = new google.maps.InfoWindow();\r\n" + 
    "\r\n" + 
    " var marker, i;\r\n" + 
    "\r\n" + 
    " for (i = 0; i < locations.length; i++) { \r\n" + 
    " marker = new google.maps.Marker({\r\n" + 
    " position: new google.maps.LatLng(locations[i][1], locations[i][2]),\r\n" + 
    " map: map\r\n" + 
    " });\r\n" + 
    "\r\n" + 
    " google.maps.event.addListener(marker, 'click', (function(marker, i) {\r\n" + 
    " return function() {\r\n" + 
    " infowindow.setContent(locations[i][0]);\r\n" + 
    " infowindow.open(map, marker);\r\n" + 
    " }\r\n" + 
    " })(marker, i));\r\n" + 
    " }\r\n" + 
    " </script>\r\n" + 
    "</body>\r\n" + 
    "</html>";

次に、コンストラクター内で次の操作を行います。

String[] lt={x}; 
                   String[] lon={y};
                   String[] name={"CurrentLocation"};
                StringBuffer html=new StringBuffer(); 
                html.append(initial); 
                for(int i=0 ; i<lt.length; i++){ 
                //LocationObj source = (LocationObj)waypoints.elementAt(i); 
                //String point = "['"+source.getLabel()+"',"+source.getLatitude()+","+ source.getLongitude()+","+i+"],"; 
                String point = "['"+name[i]+"',"+lt[i]+","+ lon[i]+","+i+"],"; 
                //System.out.println("Point is"+point); 
                html.append(point); 
                } 
                html.append(second); 
                centerPoint = " center: new google.maps.LatLng("+lt[0]+","+lon[0]+"),"; 
                html.append(centerPoint); 
                html.append(finalpart); 
                //System.out.println("Plot is"+html.toString()); 
                BrowserFieldConfig _bfConfig = new BrowserFieldConfig(); 
                _bfConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE,BrowserFieldConfig.NAVIGATION_MODE_POINTER); 
                _bfConfig.setProperty( BrowserFieldConfig.JAVASCRIPT_ENABLED, Boolean.TRUE ); 
                _bfConfig.setProperty(BrowserFieldConfig.USER_AGENT, "MyApplication 1.0"); 

                BrowserField myBrowserField = new BrowserField(_bfConfig); 

                myBrowserField.displayContent(html.toString(), ""); 

画面に表示するには、vfm または hfm 内に myBrowserField を追加します。x & y は (それぞれ) 緯度と経度の値です。お役に立てれば!

于 2012-12-05T12:23:34.217 に答える