3DS_Android_3.jpg







エイプリルフ~ル♪

最近アドセンスをはじめました。

当然のようにクリックはほとんどないですが、あるとき不許可サイトに「webcache.googleusercontent.com」と言うのが付いてました。
こんなところに広告を貼った覚えは無いですし・・・


これを許可していいものか、考えてみましたが、ふとキャッシュでは? と思いました。
そこで、グーグルで自分のサイトを検索して、検索結果の下に小さく表示されている「キャッシュ」からサイトに入ってみます。

ビンゴです。
http://webcache.googleusercontent.com/search?q=cache:・・・となっています。
ここからページに来る人もいるんですね。
キーワードがマーカーされる機能は、確かに便利なときがあります。


と言うことで、「webcache.googleusercontent.com」は許可してOKでしょう。
簡単なカメラアプリを作っているのですが、撮影した画像が保存できませんでした。

手元の本では、FileOutputStreamを使って、SDカードに保存しているのですが、どうもうまく行きません。
ファイルのパスが間違っているのか?とか、いろいろやってみても、うまく行きません。

そこで、本はちょっと諦めて、ネットでいろいろ見ていると、insertImageを使った保存方法があるようです。
onPictureTakenの中で、
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length, null);
で、データ配列をビットマップ化して、
MediaStore.Images.Media.insertImage(getContentResolver(), bmp, "", null);
で、保存・・・
getContentResolver()がエラーになりました。
MediaStore.Images.Media.insertImage(getContext().getContentResolver(), bmp, "", null);
で、保存・・・
よし!エラーなしです。

実行・・・

お~保存できました。
場所は、SDカード内の、写真が保存されている所に、Cameraと言うフォルダが作られて、その中でした。
特に何も指定してないので、自動で選ばれたようです。
ファイル名も適当な数字でした。
ちょっとカメラアプリを作ろうとしてみました。

図書館で借りてきた本を参考にして、カメラが捕らえた映像のプレビューまでは、すぐにできました。
それで、その映像を撮影して、保存しようと思ったのですが、どうもうまく行きません。
しかも、面倒なことに途中でフリーズしているらしく、カメラが開きっぱなしになっています。
強制終了させても閉じてくれません。
これでは、新しく実行してもカメラがつかえないエラーになります。
解決するには、電源を一回切って、また起動しないといけません。

ちょっと変更して、実行、フリーズ、シャットダウン、起動、ちょっと変更して、・・・ってやってると、どうも、takePictureでフリーズして、onPictureTakenがコールバックされていない様子です。
もうちょっと、あれこれ試していたら、やっと原因が分かりました。

takePictureメソッドで撮影したあと、すぐにプレビューが開始されるようにと、このメソッドの次の行にstartPreviewメソッドを置いていたのですが、こいつが問題だったようです。
startPreviewメソッドを消去すると、ちゃんとonPictureTakenが実行されるようになりました。
startPreviewメソッドはonPictureTakenの中で実行して、万事OKです。


これで、撮影が実行できましたが、今度は撮影データが保存できません。手元の本では、FileOutputStreamでSDカードに保存しているのですが、ん~書いてある通りにやってもうまく行きません。
最近、新しいホームページを作っている。

android開発に関する幅広いサイトになる予定。

それで、そのサイトではアクセス解析をしてみようと思って、Googleアナリティクスを始めてみた。

そこで、「直帰率」とか言う聞きなれない単語があったので、ちょっと調べてみた。


結論として、「1ページだけ見て、他のページを見ずにホームページを離れてしまう人の割合」らしい。


ちなみに、今の直帰率は、55.17%

これは、多いのか少ないのか・・・
電池残量を表示するウィジェットを作ってる。

ウィジェットの作り方は、基本的なことは、昨日わかった。
でも、電池残量の取得の仕方が、思ってよりややこしくて分からなかった。

それで、今日は電池残量の取得に付いてあれこれ調べてた。
1つの解説ページでは情報が不足していて、他の解説ページを見ると、ちょっと違うようなことが書いてあったりして、ちょっと混乱した。
でも、あっちこっち見て、あれこれ試して、半日くらいかかったけど、とにかく電池残量を取得してウィジェットに表示することができた。

電池残量の取得は、およそこんな感じ

アンドロイドには、ブロードキャストインテントとか言うものがあって、これでシステムからすべてのアプリケーションにインテント(直訳すると「意思」)が送られている。
このインテントの中に電池情報が入っている。
だから、これを受け取ればいい。
ただし、この受け取りは、ブロードキャストレシーバーでしかできない。
そこで、ブロードキャストレシーバを用意する。
でも、まだこれでは受け取れなくて、用意したブロードキャストレシーバのインテントフィルターを設定して、電池情報を受け取れるようにする必要がある。
これでOK。

何のことか、分からないと思うので、また、どこかにソースコードも含めた解説ページを作ろうと思う。

これで、電池残量を表示するウィジットを作ることができた。
あとはデザインです。
簡単なAndroidウィジェットを作ってみようと思った。

それなりに実用的なものを作ろうと思って、電池残量を表示するやつにしてみた。
まあ、すでにAndroidマーケットには、いっぱいあるけどデザインで勝負すれば、なんとかなるかもしれない。

それで、ネットでウィジェットの作り方を調べたわけだけど、これが思ってたより難しい。
まず、View や SurfaceView が使えない。
だから、Paint や Canvas で描画できない。
今まで Canvas ばかり使って描画してたので、これは致命的。
変わりに TextView とか ImageVeiw が使えるらしい。

とりあえず画像が表示できればなんとかなるので、ImageView の勉強を始めた。
けどこれが、なかなかうまく行かない。
解説ページがまだ少ないらしい。
1枚画像を表示するだけの、何の特徴も無いウィジェットの作り方が、簡単に解説されているページがあれば良いんだけど・・・
どうも、見つけられない。
まあ、これは、うまくいったら自分で作ろうと思う。

それでも、あれとこれとつなげて、ゴニョゴニョやってたら、とりあえずはできた。
サービスを使って、
アラームを使って、
丸1日かかったけど、10秒ごとに画像が切り替わるウィジェットまではできた。

あとで分かったけど、開発でインストールしたウィジェットがエラーを出すと、その後の開発でインストールするウィジェットにも影響を及ぼすらしい。
もちろん、エラーは良く出している。
ネットのソースコードをそのままコピーしたのに、表示されなかったり、パッケージ名を変更しただけで、表示されるようになったり、多くのややこしさはここにあったのかもしれない。

さて、あとはバッテリー残量が取得できれば良い。
まあ、これは簡単だろうと思ってネットで調べると
・・・何で、こんなにややこしいんだ?

これは、また明日。
マーケットに公開したアプリが、検索では出てくるけど、新着コーナーには無い件。

マーケティングの除外にチェックしなかったためか、とか思っていろいろ試してみたけど

・・・

ちょっと時間がたったら、ちゃんとありました。

ただの時間差攻撃だったのね。。。
Androidアプリをマーケットに公開してみた。

apkファイルのアップロードとか、スクリーンショットのアップロードとか、まあ普通だった。
ただ、マーケティングの除外が良く分からなかった。
意味は分かるのだけど、これにチェックを入れてどうなるのかが分からない。
とくに、他サイトでの広告予定は無いけど、良く分からないから、ここは、デフォルトのままチェックなしにしておいた。

公開ボタンを押すと、審査とかもなく、すぐに公開される。

マーケットを見てみると、自分のアプリを検索すると・・・あった!
新着コーナーを見てみると・・・ない?

もしかしたら、これがマーケティングの除外にチェックを入れなかった効果かも知れない。
あとから、チェックを入れようにも、この設定が変更されるには、60日程度かかるらしい。


ということで、同じアプリを公開して、このアプリを消す作戦を取ってみる。

まず、同じパッケージ名では、公開できないので、パッケージ名を変更する。
登録作業をする。
今度は、マーケティングの除外にチェックを入れる。
同じタイトルもダメらしいので、少しタイトルを変更する。
公開・・・・・・公開できた。

前のアプリは非公開にしておく。

問題の新着コーナーは・・・

ない?

予想は違ったようです。結局マーケティングの除外は何だったんだ???
Android Market に Developer登録した。


GoogleCheckoutの登録が終わっていれば、あとは、すごく簡単だった。
クレジットカードから、$25.00を払う必要がある。


これで、無料アプリを公開できるようになる。

有料アプリとして公開するためには、別に、公開用の情報入力と、銀行口座の確認が必要らしい。
公開用の情報には、住所が含まれている。
個人開発者の場合、住所を公開するのは、ちょっと抵抗がある。
と言うことで、あまり良くないけれど、住所はちょっと間を消しておいても許されると思う。


これで、有料アプリも公開できるようになった。