FC2ブログ

microSD のマウント状態


microSD のマウント状態は
Environment_getExternalStorageState() の
実行結果でわかる

実行結果の String値が
Environment_MEDIA_MOUNTED 定数と等しいなら
読み書き可能

これを利用してマウント状態を確認し
マウントされていないなら、Activity を終了する処理をメソッドに記述すればOK

Android 2.2 以降は、アプリを microSD カードに移せるので
開発するときに役立つかも
スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

Android関連の書籍

これまでにいくつか勉強のために
Android の本を買いましたので、紹介してみます

まず、わかりやすさからなら


がおすすめです

http://www.shoeisha.com/book/hp/10days/down/index.html#android
から必要なファイル、そして
この本で作成するアプリがダウンロードできます

最近の書籍は、昔とは違い、サンプルやソースコードが
ダウンロードできるため、うまくいかないときには
完成版のコードと比べて、修正したり、
実際に先にアプリを動かすことができるので、
理解がしやすくなっていると思います

この本で参考になったのが、Eclipse を使って電子証明書を
つくったり、Android 開発者の登録のしかたやバージョンアップの
方法です


次に、


こちらは、少し難しくなります
ただ、コードの解説が載っていますので
アプリ作成の勉強をするにあたり、参考になると思います

ただし、間違っているところがありますので、
http://www.sbcr.jp/support/9833.html
に正誤表が載っていますので
こちらを参考にする必要があります

テーマ : プログラミング
ジャンル : コンピュータ

IS04 の予備バッテリー購入

3月に機種変してから、IS04 を使っています

来月、ようやく android 2.2 にできるようになるようです

また、近々、アップデートで
Eメールの削除機能が使えるようになるようです

ただ、私の場合、省エネのような使い方はしないため
ほぼ10時間程度で電池がなくなります

このため、どこかにでかけるときのために
予備のバッテリーを購入しました

今回、購入したのは、充電機つきのものです




充電には4~5時間はかかりますが
出先で充電することや、電池の残量を気にするよりは
効率的です

あらかじめ、充電しておいたものと交換すれば
充電完了の状態で使えますので
電池切れの心配はなくなります

とくに、しらない場所にいったときに
ナビが使えなくなったり、乗り換え案内ができないと
とても不便です

android 携帯そのものが電池がもたないので
できれば2つほど購入しておいたほうが
対処できます

テーマ : Android携帯
ジャンル : 携帯電話・PHS

Android 開発メモ

Eclipse を使って開発するときに、ディレクトリごとの
解説になりそうなものをまとめてみました

ブログなどでまとめておくと
自分の知識の復習やまとめに役立ちます

Screenshot-12.png


src ディレクトリには ソースコードが格納される

res ディレクトリには アプリに関連する各種ソースが格納される
drawable-*dpi 関連には
アプリのアイコン、アプリで使用する画像を入れる

layout ディレクトリには
アプリ画面のレイアウトを記述したXML コードが格納される


values ディレクトリには
文字列、数値などのリソースが格納される

ちなみに、drawable-*dpi は
画面の大きさごとに応じて画像を表示するためにわけてある

大きめの画像を使うなら
hdpi

中ぐらいなら
mdpi

小さいなら
ldpi

h=high m=middle l=low
みたいな意味だとおもいます


プロジェクトを作ると、root に AndroidManifest.xml
が作成されます
ここには、アプリの基本情報が記述されています
また、権限を変更するときにも、ここの設定を変更します

テーマ : プログラミング
ジャンル : コンピュータ

自作アプリ ブラウザからのインストール実験

署名付きAPKファイルの作成
を公開するまえに、まずは自分の環境でインストールなどに
問題がないかを調べます

まず、手持ちの Webサーバにアップロードします

とはいっても、レンタルサーバーなどはつかいません
XAMPP を使えば、簡単に簡易Webサーバを準備できます
もしくは、ubuntu や fedora ,CentOS なら
apache をインストールすることでも対応可能です

今回は、ubuntu でAPK ファイルを
作成したので
sudo apt-get install httpd
でWeb サーバー機能をいれます

このままだと、権限の問題で読み書きに支障がでるので
sudo chown -R snowpool www/
で所有者をユーザへ変更します

次に、android アプリのインストールファイルを
ダウンロードできるページへ移動します
cp /home/snowpool/デスクトップ/Test2.apk .

続いて、HTMLファイルを編集し、ダウンロードできるようにします
vi /var/www/index.html

内容は
<html><body><h1>It works!
<p>This is the default web page for this server.


<p>The web server software is running but no content has been added, yet.




アプリ配布テスト<br>
<a href="Test2.apk">アプリ配布実験</a>
</body>

とします

これで、Android エミュレータを起動し
エミュレータのブラウザで
http://サーバーのIPアドレス
で接続して、
ファイルをダウンロードします
(残念ながら、日本語部分が文字化けしました)
Screenshot-9.png

Screenshot-10.png

ダウンロードが無事に成功したら
インストールします

Screenshot-11.png

このときに
このアプリが行える権限などが
AndroidManifest.xml にしたがって表示されます

エミュレータ以外にも
VirtualBox で起動した Android OS も同様の方法でインストールの
実験が可能です

このVirtualBox の環境作成には
Android-X86-2.2をVirtualBoxで動かした。
を参考にさせていただきました

テーマ : プログラミング
ジャンル : コンピュータ

署名付きAPKファイルの作成

Android Market にアプリを登録するには
デジタル署名されたアプリケーションファイル
通称APKファイルを作成する必要があります

以下が Eclipse での APK ファイル作成になります

作成したいプロジェクトを右クリックし

Android Tools > Export Signed Application Package

すると、プロジェクト名を聞かれるので
Browse ボタンから探す
もしくは プロジェクト名を入力します

今回は、test プロジェクトを入力します

次に、電子証明書を作成します

まだ作成していないので、
Create new keystore
を選択し、
Location の項目へファイル名と置くディレクトリを
入力します

ちなみに、ファイルの拡張子は
.keystore になります

Screenshot-6.png


続いて、電子証明書の作成画面です
Screenshot-7.png

Alias
ファイルの別名

Password
パスワード

Confirm
確認のため、もう一回パスワード入力

Validity(years)
電子証明書の有効期限

First and Last Name
開発者の名前

Organization Unit
会社の部署

Organization
会社名

City or Locality
都市または地域名

State or Province
州名または地方名

Contry Code
国コード(日本なら jp)

これらを記入します


これらを入力して、次は署名付きAPKファイルの保存先を
指定します

Screenshot-8.png

この画面で Browse ボタンを押すと
保存先を聞かれるので、任意の場所に保存します

今回は、デスクトップに置きました

最後に Finish ボタンを押して、作成完了です

今回の参考サイトとして
eclipse上で署名されたandroidアプリ(.apk)を作成する
apkファイルに署名する簡単な方法
Androidアプリケーションを公開するために:署名と配置の方法
を参考にさせていただきました

今回は、Eclipse で行いましたが
不具合がでたときの対策としてコマンドから
証明書を作成する、ということに挑戦しようと思います

ubuntu で行っているため
Android アプリに署名をする
を参考に、端末から作成してみます

テーマ : プログラミング
ジャンル : コンピュータ

署名付きAPKが作成できません

ようやく、Eclipse で android アプリのファイルが
作成できると思ったのですが

残念ながら、電子証明書が作成できません
この電子証明書がないとアプリのインストールができません

現在、使用している環境は
android 10.10 32bit
です

署名付きAPKが作成できなくなった
によれば
、ADTのバージョンが原因
もしくは
eclipse の入れ直しで解決することが多いようです

もっとも、Eclipse にこだわらないのであれば
Androidアプリケーションを公開するために:署名と配置の方法にあるように
端末から作成するという方法もあるようです

まずは、Android SDK のアップデートを行ってみます

テーマ : プログラミング
ジャンル : コンピュータ

アイコンと名前の設定

アプリの名前を変更するには

res/values/string.xml
の中にある
<string name="app_name">プロジェクト名</string>
の部分の プロジェクト名
のところを変更すれば、アプリの名前を変更できます

たとえば
Test1 というプロジェクトで作成しているなら

<string name="app_name">Test1</string>
となっているので、
これを
<string name="app_name">さんぷるあぷり</string>
とすれば、アプリ名前がかわります

Screenshot-2.png

Screenshot-1.png

ちなみに、string.xml の内容を書き換えるとアプリの名前が変わるのは
AndroidManifest.xml
の中にある
application タグの中の
android:label="@string/app_name"
の記述によって、変更先を参照するようになっているからです


また、アイコンを変更するのなら
res/drawable-hdpi
res/drawable-ldpi
res/drawable-mdpi
の中に使用したいアイコンの画像ファイルをおきます

そして、Eclipse で
File > Refresh
を行えば、設定が反映されます

これも、
AndroidManifest.xml
の中にある
application タグの中の
android:icon="@drawable/icon"
の記述により、画像ファイルを変更するだけで
アイコンを変更することが可能になっています

テーマ : プログラミング
ジャンル : コンピュータ

電話着信時のイベント処理

Androidi プログラミングのメモ

電話着信関連のイベントを処理するには

PhoneStateListener 関連を使用するらしい

「PhoneStateListener 電話」
で検索すると、いろいろ出てきます

さすがにアプリを携帯で実験するのはリスキーなので
まずはエミュレータで実行

参考サイトは
PhoneStateListenerを使って着信イベントを取得する
これを使えば、まずはエミュレータで実行して実験できます

もうひとつ興味深かったのが
電話番号・SIM・デバイスID・サービス・通信強度・基地局・電話コールの取得
こちらはソースが載っているので、
わかりやすいかも

テーマ : プログラミング
ジャンル : コンピュータ

複数のSDKバージョンへの対応

新しい機能を実装したアプリを作成すると
新機能がサポートされていない Android OS では動作しない

まぁあたりまえなんだけど
Windows 98 で Windows 7 の機能は使えないし

一応、新しいSDKでビルドしたアプリでも
最低限実行可能なSDKバージョンを指定しておけば
そのバージョンで動作はできるようです

バージョン指定には、Androidmanifest.xml に以下の文を追記します

<uses-sdk android:minSdkVersion="4"></uses-sdk>

この4の部分がAPIレベルという
Android SDK に関連する数値です

ただし、この設定を行っても
インストールはできるけど、動作保障はできない
ということです

Linux に wine を入れて Windows アプリを起動しようとしても
うまくいくとは限らないというのと同じようなものです

Android 2.3 にしかない機能を
Android 2.1 で動かすと
強制終了のようになります

このため、リリースするときには
バージョンを考慮するか、もしくは切り替え機能を搭載することが
多いようです

これが Android 2.2 対応とかという表示がされる理由です

Android 2.1 とか Android 2.2 とかでわかりにくいときには

Windows 98, Windows ME ,Windows 2000
Windows XP Windows Vista Windows 7
というようにバージョンがあがったら
システムが変わるぐらいに考えてみるとわかりやすいです


テーマ : プログラミング
ジャンル : コンピュータ

Notification から Activity を呼び出しても履歴が残らないようにする方法


Notification からアプリを起動すると、どんどんバックグランドに
タスクがたまり、Back ボタンでアプリを終了してもなんども同じ
画面がでるというバグのような状態になる

この対処法は2つ

1 PendingIntent を生成する際に設定できるフラグで制御する「

2、AndroidManifest.xml の Activity の指定で1つしか起動できないようにする

どちらかというと
AndroidManifest.xml の中に記述したほうが楽

やり方は
Activity タグの中に

android:launchMode="singleTask"

を追記すればOK

テーマ : プログラミング
ジャンル : コンピュータ

Android のパーミッションシステム

Andoid には、ユーザ定義のパーミッション権限があります

Linux をつかっているとよく目にします

この機能は、セキュリティ関連でつけられています

例えば、Android アプリが無断で端末にアクセスできないように
したりという設定です

この設定は
Android アプリの中の
AndroidManifest.xml
の中に

users-permission1 で定義します

この設定をしておくと
アプリをインストールするときに、ユーザに勧告するようです

エミュレータで実験したかったのですが
わからず、検索してもまだみつかっていないため
この機能についてはまだ検証できていません

英語のサイトになりますが
Manifest.permission
に一覧らしきものが載っています

ちなみに、一部紹介をすると
android.permission.READ_PHONE_STATE
電話の状態を読み取る

android.permission.INTERNET

完全インターネットアクセス

android.permission.RECORD_AUDIO
録音

となっています

もし、画像入りのものができたら、アップしてみます

テーマ : プログラミング
ジャンル : コンピュータ

androidの音響効果


Android SDK 2.3 で新しく audiofx (音響効果)が追加された

今回追加された音響効果は
 バスブースト
(低音を強調する機能)

イコライザー
(周波数特性を変更する機能)

リバーブ
(残響効果)

バーチャルサラウンド
(ヘッドフォンの仮想効果)

音のサンプルを取得する機能も追加されたらしいです

Visualizer クラス
を使うことにより、Windows Media Player でよくある
音に合わせて波紋がでるのをつくれるようです

テーマ : プログラミング
ジャンル : コンピュータ

XML編集モードでバージョン切り替え

Android アプリ開発の勉強をしています

今回、Android アプリを Eclipse で開発していて
XML 編集モードで少しわかりにくかったのでメモ

今回、 XML 編集モードで、GUIでパーツを配置しようとしたけど
なぜかパーツが見当たらないということがありました

原因ですが、非常に単純なミスで
Android のバージョンが 3.0 になっていました

このため バージョンを Android 2.3 に変更することで
無事に解決しました

Screenshot.png

今回から、できるだけ解説に画像をいれてみようと思います

テーマ : プログラミング
ジャンル : コンピュータ

Amazn EC2 の情報収集

Amazon EC2 について情報収集しています

いままでクラウドで試したことがあるのは、
Dropbox と google App Engine を少しやった程度

どちらも無料だけど、今回使用する Amazon Ec2 の場合
利用頻度により、かかる金額が変わってくるし

今回の原発停止なども考えれば、海外のクラウドにおいてしまったほうが
安全なのかもしれません

日本にも3月に Amazon のデータセンターができたけど
こうも夏場に電力不足といわれると、はたして持つのかかが
疑問な展開に

英語が必要になるけど、英語が読めるようになれば
技術関連においてもかなり便利になるので、ここはいっそのこと
わりきって英語の勉強もしておくといいのかも

FXとかの規制に関しても、日本国内はレバレッジ規制がかかったりしても
海外までは規制できないし、海外に預金口座をつくるのなら
英語能力は必須

twitter や facebook で知り合いをつくったりコミュニティに
参加するにも、英語能力があればより視点も広がりそう

そんなわけで、英語マニュアルにもくじけずに頑張ってみます

英語が必須と思ったのは
今回見た
横浜のホームページ制作 スタジオFIXの社長ブログ
をみたのも影響しています

しかし、改めてパスワード管理とポートの変更は重要だと思いました

料金に関しては
Amazon EC2 料金一覧 早見表
に掲載されていました

もともとあったwiki っぽいページは内容がなくなったり移動していてみれませんでした

そして、EC2についての情報で参考になったのが
Amazon EC2を使う前に知っておきたいこと色々
まだまだいろいろと調べるべきことがありそうです

テーマ : インターネット
ジャンル : コンピュータ

Notification のフラグ設定

Notification には2種類あり
1、実行中を表す通知

2、メッセージ

となります

目的は違うけど、作成する手順はどちらも同じ

双方の切り替えは
設定項目のflags にフラグを設定すれば変更可能

ちなみに、以下が設定可能なフラグ

FLAG_AUTO_CANCEL
通知がクリックされると自動で通知を消去

FLAG_INSISTENT

通知がキャンセルされるか、拡張部分が開かれるまで
音をならしたままにする

FLAG_NO_CLEAR
通知を消去するボタンでも消去できなくする

FLAG_ONGOING_EVENT

実行中の部分に通知が表示される

FLAG_SHOW_LIGHTS

LEDを点灯するときに使用

テーマ : プログラミング
ジャンル : コンピュータ

Notification で設定可能な項目

続いて、Notification で設定可能な項目のメモ

テキストエディタにもメモはしていますが
オンラインにもバックアップの代わりにとっておけば
閲覧するときに役立ちます

audioStreamType

再生するAudio のタイプ

contentIntent
拡張部分をクリックした時に呼ばれるIntent

contentView

拡張部分をカスタマイズする場合に設定するView

defaults

音、振動、点滅のデフォルトの通知方法

deleteIntent

Notification が削除されたときに呼ばれる Intent

flags
動作を制御するフラグ

icon
ステータスバーに表示するアイコン

iconLevel

ステータスバーに表示するアイコンにレベルがある場合に設定

ledARGB

LEDの表示色

ledOffMS
LEDの点滅OFFの時間
設定はミリ秒

ledOnMS

LEDの点滅ONの時間
設定はミリ秒単位

Number
ステータスバーのアイコンに表示する数字

sound

再生する音楽のURI

tickerText

ステータスバーに表示されるときに一瞬表示されるテキスト

vibrate
バイブレーションのパターン

when
拡張部分の通知領域に表示される通知発生時刻



テーマ : プログラミング
ジャンル : コンピュータ

Notification のコンストラクタ

Android 関連のメモ

関数の引数などは忘れやすいので、できるだけメモしておきます

今回はNotification のコンストラクタ

icon

ステータスバーに表示するアイコン

tickerText
ステータスバーに登録された際、一瞬だけ表示するメッセージ

when

拡張部分の通知領域に表示される通知発生時刻

テーマ : プログラミング
ジャンル : コンピュータ

AIDL で利用できる型

Android プログラミングで AIDL ファイルを作成するとき

使用可能な型が制限されているので
忘れないようにメモ

以下は利用可能な型

プリミティブ型
java 言語が提供している基本的な型
(int, boolean, double, char などなど)

String
Stringクラス

List
List クラス
でも中身が利用できる型じゃないとダメ

Map
Map クラス
これも中身が利用できる型じゃないとダメ

CharSequence
TextView などに設定されている読み込み専用文字列

AIDLインターフェース
AIDLで作成されたインターフェースクラス

Parcelable型

Parcelable クラスを継承したクラス

テーマ : プログラミング
ジャンル : コンピュータ

Android エミュレータに音楽ファイル転送

Android プログラミングで
エミュレータに音楽ファイルを転送し、アプリの起動実験しました

開発環境は ubuntu 10.10 32 bit です

音楽ファイルを考えましたが、あまり浮かばなかったので
今回は手持ちの ipod nano の音楽ファイルを使用しました

まず、最初に ubuntu に ipod nano を差します

今回使用したのは2009年に買ったものです



次に、nautilus が起動してディレクトリがみれるので、
音楽ファイルが格納されている場所
/media/SNOW\ /iPod_Control/Music/

ここからまずは ubuntu へファイルを移します

cp -r /media/SNOW\ /iPod_Control/Music/* $HOME/音楽/
これで、
Phythmbox で音楽ライブラリができます

あとは、音楽ファイルをエミュレータに移すために
eclipse を起動し、
Android エミュレータでのSDカード
のときと同じように
画面をDDMSに切り替えて
File Explorer のところにある
/mnt/sdcard
のところへ
音楽ファイルをドラッグ&ドロップすれば転送できます

ちなみに、転送しただけでは反映されません

真ん中にある設定ボタンをクリックして
dev Tools を選択して
Media Scanner をクリックすることで、
エミュレータに転送したファイルを読み込み
反映させることができるようになります

テーマ : プログラミング
ジャンル : コンピュータ

中部電力の原発停止

最近、政府から中部電力の浜岡原発に対して
停止するようにとの命令がでたようです

情報ソースは
[浜岡原発全面停止]政策見直しの第一歩に

もっとも、この原発はかなり古いようで
最近の福島の原発のことも考えれば、仕方ないのかもしれません

ただ、福島の原発が停止したことにより、計画停電となったりもしましたので
今後はそういった対処も考えなければならないのかもしれません

私は、自宅サーバーの構築しているときに考えたのが
Amazon EC2 をそろそろ使ってみようかなということです

自宅サーバーを構築しても
電力不足には対処できませんし、そうとはいってもUPSを購入というわけにも
いきません

料金体系、設定方法を調べ、はやめに対処していこうと思います
実践 Amazon EC2
などの記事を参考に、今後はクラウドを使うことにします

手順など、詳細なことが実践できしだい、アップしていこうと思います

テーマ : インターネット
ジャンル : コンピュータ

PreferenceActivity の利用

今回は、PreferenceActivity を作成し
画面から取得できるようにした

ちなみ、PreferenceActivity は
Activity クラスのサブクラス

今回は、レイアウトファイルではなく
Preference情報を記載したファイルを作成し
それをonCreateメソッドで設定している

手順だとActivity クラスの作成と同じステップにはなるけど
Preference ファイルの作成では画面で座員を考慮しなくていいので
わかりやすい

Preference ファイルの設定は、通常はXMLエディタで行うけど
ダブルクリックして Android Xml エディタでも設定が可能

追加できる Preference の種類は、以下のとおり

CheckBoxPreference
チェックボックス

EdittextPreference
テキストボックス

ListPreference
選択リスト

PreferenceCategory
カテゴリ作成

PreferenceScreen
別の Preference 呼び出し

RingtonePreference
着信音

Preference
独自のpreferenceクラスを利用

なお。追加した Preference はAndroid Xml から直接編集が
可能になります


なんとなくだけど、似たような仕組みのものがあったようなきがします

たしか、HTML と CSS 
もこんなかんじだったような気が

テーマ : プログラミング
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック