Android

Google Play開発者サービスが入ってないっぽい場合

「Google Play開発者サービス」が入ってなかったんです、手持ちの端末には。https://play.google.com/store/apps/details?id=com.google.android.gms&hl=ja によると、「通常、Android搭載端末ではGoogle Playサービスが自動的に更新されます。」とのこと。 …

Google Maps Android Ver.2 をさわってみた

Google Maps Andoroid Ver.2 がリリースされました。 公式の文書は https://developers.google.com/maps/documentation/android/ ですが英語なので、ひとつここは何か書いてやろうと思っていたのですが、http://www.adamrocker.com/blog/334/google-maps-and…

複数プロジェクトでProGuardが何かうまくいかないのでJARを入れるもおかしい作りのものを入れたのでJARのエクスポートを行ったらなんとかうまくいった

id:yellow_73:20120817の続きだったりしてます。ライブラリプロジェクト(ライセンスライブラリとダウンロードライブラリ)とアプリケーションプロジェクトを作って、アプリケーションプロジェクトから Properties - Android でライブラリを読み込むようにして…

ContentProviderとWebView

ContentProviderは、ファイルとか何やらのやりとりが直接的にできない要素同士がやりとりできるようにするためのものです。プロセスを超えるのも可能。あと、delete, insert, query といったSQLみたいなのも可能。実装サンプルコードは http://d.hatena.ne.j…

PlayマーケットからAPK以外をダウンロードしてみる

LVL (Licence Verification Library)は、Playストアから落としたアプリかどうかをチェックする機能。 http://developer.android.com/guide/google/play/licensing/index.htmlでもLVL自体が欲しいわけじゃなくて、APK Expansion Fileを使いたいだけだったりし…

ProGuardを使ってみる

なんとなくAndroid SDKに添付されているProGuardを使って難読化を試みました。理由は隠したいものがコードに混じったから。で、なんかエラーが出て失敗。googleさんに聞いたら、どうもパスに空白があるのがいけないらしい。またか…。で、eclipseのプロパティ…

OpenLayersをWebViewで貼り付ける

WebViewを貼り付けてJavaScriptアプリをDalvikアプリのようにみせるアプリの続き。Leafletを使おうとして、手持ちの端末でうまくいかんかったので、OpenLayersを使うことにしました、までがこれまでのあらすじ。しかしOpenLayersでも問題が発生。アプリの一…

Leafletのカスタム化とLeafletに足突っ込もうとしたけどやめたたったひとつの理由

はじめに 前半を書いていた時点でこんなことになろうとは…。 Leaflet ライトなJavaScript地図アプリケーション用ライブラリです。モバイルで使うんだったらライトであればあるほど良い。手持ちのIS-03は常にもっさりなのです。 さらにカスタムビルドをするこ…

loadUrl で "file:///...?" は使えない

マーケットに流している某古い地図なアプリ、Dalvik側は WebView#loadUrl で HTML ファイルをロードしているだけです。 で Not Found なエラーが出てました。レポートして下さった方、ありがとうございます。 症状は次の通り。 1月のアップデード後に発症 具…

zephyrの心拍計

Android に限らんです。 Zephyr は洋モノの心拍計。Bluetooth からデータがとれます。心拍とGPSとをマージすると、位置と負荷のシリーズがとれる、と。ステキー。GPS は Android から取るので、Bluetooth から心拍をとるだけ。受信データは 1ブロック60バイ…

eclipse に何は無くとも入れる拡張

本当にメモでしかないという…。 Android https://dl-ssl.google.com/android/eclipse/ プロパティエディタ http://propedit.sourceforge.jp/eclipse/updates/ Mercurial http://cbes.javaforge.com/update Subclipse http://subclipse.tigris.org/update_1.8…

プリンタとの通信でイタい目にあっている #2

id:yellow_73:20111025#p2 のつづき。 プリンタの設定は「認証なし」にしているし、パソコンとのボンディングやハンディターミナルではPINは不要です。 が、Android端末からの場合にはボンディングの際にPINが必要とされています。 …この点については、正直…

プリンタとの通信でイタい目にあっている

で、あるBluetoothを持つラベルプリンタとの通信を試みていたところ、問題が発生。 いくらボンディングしても、PINを要求されるのです。 自動でPINを入れる方法は無いものかと探したところ http://d.hatena.ne.jp/androiddev/20110225/ に遭遇。 そうか、隠…

Bluetooth でパソコンと通信

Bluetoothでゴニョゴニョしようとしています。 とりあえずSDKのサンプルについてくる Bluetooth Chat をコンパイル、実行してみると、Androi端末間はうまくいった、というところまでは、随分前に来てました。 ひっかかったのが、パソコンとの通信。 スタック…

空白文字を含むパスにSDK入れてたらエミュレータ動かなくなった

EclipseからAndroidエミュレータが動かねえ、 invalid command-line parameter とかいいやがるんだ。 そのまんまでgoogleさんに聞いたところ http://d.hatena.ne.jp/kiyotune/20110721/1311230418 に行き着く。 まさかの空白文字で切られる不具合の模様。SDK…

画面上に投影する

2.2以降では Camera.Parameters#getHorizontalViewAngle() で画角が得られるので、ピクセルと方位とを線形関係とみなして(「レンズモデル?シラネ」で行く)、前述の姿勢に依存する座標系から Math.tan2() とかを使って方位を出してやればOK。 気をつけるべき…

AR用の姿勢を得る

id:yellow_73:20110815 の続き。 センサの基準となる画面の向きはタブレットとスマートフォンで違う ヨー、ピッチ、ローについて、前の記事ではうそ書きましたー (差し替え済み)。平面に置いたのが基準です。 繰り返しですが、ポートレイトがセンサの基準に…

ベストでもない位置プロバイダも含めて現在位置特定を行う

id:yellow_73:20110815#p1 および id:yellow_73:20110819#p2 のつづき。 ここまで言ってませんでしたが、今回の位置特定は、現在位置をワンショットで特定するもので、精度はあまり求めないものです。継続して精度良く現在位置を取得するものとは異なります…

ベストでないgetBestProvider

id:yellow_73:20110815#p1 のつづき。 LocationManager#getBestProvider() を使うと、Criteriaで指定した優先順位に沿って最も適切なロケーションプロバイダを探してくれるというものです。メソッド名からして「ベスト」なんだしこれで良いと思ってました。 …

Fustion Tables へのアクセスがうまくいかず結構悩んだ

id:yellow_73:20110809#p2 のつづきです。 unauthenticated が出まくる まず、昨日まで SHOW TABLES がうまくいってたのに、突然うまくいかなくなりました。 unauthenticated という文言が見え、HTTP応答ステータスは 401 でした。 他のクエリではどうだろう…

方位センサに悩まされる

プライベートでARっぽいのをやろうとしてて、方位センサまわりでちょっと引っかかったのでメモ。 方位センサの基準画面向きからみた現在の画面向きを知る まず、Androidのタブレット機では横長基準でセンサを仕掛けているものがあります。携帯電話機なら縦長…

Fusion Tables にアクセスしてみる

https://www.google.com/fusiontables/api/query?sql=SHOW TABLES とかこんなかんじ。 認証情報は、先ほどのトークンを使用。 どこに埋め込むかというと、HTTPヘッダ。 Authorization: GoogleLogin auth=(トークン) です。POSTでもGETでも同じ。 そのうえで…

googleアカウントの認証

Androidでgoogleアカウントの認証をやってみようとしてみました。 2.1以降ということにして、AccountManager を使います。1.6はもういいことにしておいてやって下さい…。 http://d.hatena.ne.jp/adsaria/20101012/1286886888 あたり参照。 AccountManager#ge…

アノテーションを使ってみる

いかんねむいのでとりあえずメモ。 ちょっとアヤしいことをするために、フィールドにアノテーションを付けます。 public @interface FooBar { String name(); boolean checked() default false; } こんなかんじにします。 public class A { @FooBar(name = "…

SQLiteQueryBuilderの再利用はまずいかもしれない

My Tracks for Android が 1.1.0 にアップデートされた直後に「IS01で動作しない」というコメントが多数ありました。手持ちでは IS03(2.1) と Xperia(2.1) と DK01(1.6だがgoogleライブラリなし) という貧弱なラインナップのため、様子も見れなかったです。 …

とりあえずAndroid標準ブラウザ対応

ずっと気になっていたのですが、自分のサイトをAndroid端末から見ようとすると、初期が縮小表示で面倒くさい感がたっぷり。 ということで、若干書き換えて、デザイン等はともかく、スマートフォン対策を行うようにしました。 viewport <meta name="viewport" content="width=device-width,initial-scale=1" /> を記入。これでデバイ</meta>…

Applicationを継承したクラス

Androidでは、バックキーをクリックしてアクティビティを落としてもプロセスは残ります。そして、再びアプリケーションを再び上げようとすると、新たなアクティビティを生成します。 よって、アプリケーション内で常に持たせておきたいモノがある場合に、Act…

eclipseでライブラリプロジェクトを作る

「ライブラリプロジェクト」と言ってよいのかどうか分からないですが…。 ライブラリプロジェクトを作って、複数のプロジェクトから参照する方法です。 ライブラリとなるプロジェクト Androidプロジェクトを作る プロジェクトプロパティを開く Androidカテゴ…

JavaDocを実行すると「android.* が発見できない」と怒られていた

JavaDocを実行すると「android.* が発見できない」と怒られていました。理由不明のまま糸口も見つからず放置していました。 で、ちょっとこれどうにかならんかと思って調べていると、 http://stackoverflow.com/questions/2818204/how-to-generate-links-to-…

OpenLayersを無理やり動かす

HTML+JavaScriptに目覚める 単独アプリで地図ビューアを作るには基本的にはDalvikベースだろ、と思っていたけれども、ゆびちずとか見てて(審査を経由しなくて良いから、HTML5に回ったんだそうな)、HTML+JavaScriptも捨てがたいのではないかという思いを持っ…