簡単に回避出来るけどAPI Level9 Gingerbreadのアップデート後にちょっとした問題がeclipseで起きたのでメモ。
なんかadb.exeが
android-sdk-windows/tools/adb.exe
から
android-sdk-windows/platform-tools/adb.exe
にお引越ししたみたい
eclipseのADTを普通にアップデートかけたら問題は回避できた
公式に特に書いてある感じ無いけど、まぁ最新版は常に突っ込んどけってことか
2010年12月15日水曜日
androidのwebviewでHTML5のGeolocationを使う方法 #追記2011/01/14 上手くいってない? #さらに追記2010/01/18
色々調べた結果
以下のパーミッションをマニフェストに追加
WebChromeClientを適当に作る。なんかほかにも色々出来そうだけど。とりあえずgeolocationのみで
でWebViewの準備時に以下のような感じにする
なんか
getSettings().setGeolocationEnabled(true)とかを叩いても行けるっぽいようなことも書いてあったりしたけど、うまくいかなかったので上記で対応した。
#追記
何故か環境依存で上手くいかない場合があるみたい?細かいことは不明だが2.0から2.1にAPIバージョン上げて2.2でテストとか言う変則パターンだと上手く動作しなかった。
細かいこと調べてあとで書きなおす。
なのであんまり参考にしないでね。
##追記の追記
どうやら上手く動いてるようです。
上の追記でおかしくなった理由は試していたgeolocation使ったjsのミスによるものでした。
以下のパーミッションをマニフェストに追加
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
WebChromeClientを適当に作る。なんかほかにも色々出来そうだけど。とりあえずgeolocationのみで
final class GeoClient extends WebChromeClient {
@Override
public void onGeolocationPermissionsShowPrompt(String origin,
Callback callback) {
// TODO Auto-generated method stub
super.onGeolocationPermissionsShowPrompt(origin, callback);
callback.invoke(origin, true, false);
}
}
でWebViewの準備時に以下のような感じにする
this.webview = new WebView(this);
this.webview.getSettings().setJavaScriptEnabled(true);
GeoClient geo = new GeoClient();
this.webview.setWebChromeClient(geo);
なんか
getSettings().setGeolocationEnabled(true)とかを叩いても行けるっぽいようなことも書いてあったりしたけど、うまくいかなかったので上記で対応した。
#追記
何故か環境依存で上手くいかない場合があるみたい?細かいことは不明だが2.0から2.1にAPIバージョン上げて2.2でテストとか言う変則パターンだと上手く動作しなかった。
細かいこと調べてあとで書きなおす。
なのであんまり参考にしないでね。
##追記の追記
どうやら上手く動いてるようです。
上の追記でおかしくなった理由は試していたgeolocation使ったjsのミスによるものでした。
2010年12月14日火曜日
html5で位置引いて適当にgoogleマップ叩くコード
var getGps = function() {
navigator.geolocation.getCurrentPosition(function(position) {
document.images['map'].src = 'http://maps.google.com/maps/api/staticmap?center=' + position.coords.latitude + ',' + position.coords.longitude + '&zoom=14&size=400x400&maptype=roadmap&sensor=false&markers=color:red|label:A|' + position.coords.latitude +',' + position.coords.longitude
});
}
これで適当に<a>タグ書いてロード時に引っ張り出すとかする。
よくわかんないけど、androidだと勝手にGPSから引っ張ってきてくれたipadも
あとipod touchはmacアドレスとかから引っ張り出してきてる感じ?
デスクトップPCでchromeから叩くとIPから引っ張ってくる感じ?
navigator.geolocation.getCurrentPosition(function(position) {
document.images['map'].src = 'http://maps.google.com/maps/api/staticmap?center=' + position.coords.latitude + ',' + position.coords.longitude + '&zoom=14&size=400x400&maptype=roadmap&sensor=false&markers=color:red|label:A|' + position.coords.latitude +',' + position.coords.longitude
});
}
これで適当に<a>タグ書いてロード時に引っ張り出すとかする。
よくわかんないけど、androidだと勝手にGPSから引っ張ってきてくれたipadも
あとipod touchはmacアドレスとかから引っ張り出してきてる感じ?
デスクトップPCでchromeから叩くとIPから引っ張ってくる感じ?
登録:
投稿 (Atom)