2012年2月25日土曜日

[Android SDK] 画面ON/OFFを検知する

画面の電源ON/OFF時にはインテントが発行されますので、BroadcastReceiverを利用して受け取るようにします。 まずは、受け取るためにBroadcastReceiverを作成します。作成したActivityもしくはService内に作成すると良い。
// ブロードキャストリスナー
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
 @Override
 public void onReceive(Context context, Intent intent) {
  String action = intent.getAction();
  if (action != null) {
   if (action.equals(Intent.ACTION_SCREEN_ON)) {
    // 画面ON時
    Log.d(TAG, "SCREEN_ON");
   } else if (action.equals(Intent.ACTION_SCREEN_OFF)) {
    // 画面OFF時
    Log.d(TAG, "SCREEN_OFF");
   }
  }
 }
};
作成したBroadcastReceiverでインテントを受け取るには、IntentFilterを使い対象を登録する必要があります。 画面の電源ON/OFFでは次の二つを登録すると良い。
// リスナーの登録
Context c;
c.registerReceiver(broadcastReceiver, new IntentFilter(Intent.ACTION_SCREEN_ON));
c.registerReceiver(broadcastReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
また、受信するActivityまたはServiceのIntentFilterにも追加する。

なお、不要になったときは登録を削除します。
// リスナーの登録削除
Context c;
c.unregisterReceiver(broadcastReceiver);

[Android SDK] 電話の着信を監視する

TelephonyManagerを利用すると、電話の着信/通話中/待機時を検知することができる。
まずはシステムサービスからTelephonyManagerを取得し、listenでリスナーを登録する。
※Permissonに"android.permission.READ_PHONE_STATE"の登録が必要。
// 電話状態監視リスナー
PhoneStateListener mListener = new PhoneStateListener() { 
 public void onCallStateChanged(int state, String number) {
  switch(state) {
  case TelephonyManager.CALL_STATE_RINGING:// 着信時
   Log.d(TAG, "PhoneState: CALL_STATE_RINGING");
   break;
  case TelephonyManager.CALL_STATE_OFFHOOK:// 通話時
   Log.d(TAG, "PhoneState: CALL_STATE_OFFHOOK");
   break;
  case TelephonyManager.CALL_STATE_IDLE:// 待機時(リスナー登録時も呼ばれるようだ)
   Log.d(TAG, "PhoneState: CALL_STATE_IDLE");
   break;
  }
 }
};
TelephonyManager m = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
m.listen(mListener, PhoneStateListener.LISTEN_CALL_STATE);
不在着信の検知は、前回の電話状態を記録することで可能です。
・通話終了=CALL_STATE_RINGING -> CALL_STATE_OFFHOOK -> CALL_STATE_IDLE
・不在着信=CALL_STATE_RINGING -> CALL_STATE_IDLE

2012年2月24日金曜日

[マルチタイマー ver.1.1.1] 初Androidアプリを公開

Androidアプリの開発を始め2ヶ月ほどでやっと、簡単ですがタイマーアプリが完成しましたので、Android Marketで公開しました。試しに使ってみてください。

【対応言語】英語、日本語
【動作確認】MEDIAS N-04C、Xperia SX

ストップウォッチ、キッチンタイマーの2つのタイマーが使えます。
タイマーの切替はタブでき同時に使えます。

■ストップウォッチ
ラップ機能付きのストップウォッチです。


■キッチンタイマー
アラーム通知は、他アプリ操作中でも、画面ロック中でも通知されます。


■設定変更
 ・タイマー使用時のバックライトを常時点灯できます。
 ・キッチンタイマーのアラーム音、アラーム時間など変更できます。
  など




2012年1月28日土曜日

Androidアプリ開発の参考記事まとめ



今話題のスマートホン、Androidの方ですがアプリの開発を始めてみました。iPhoneのアプリと違って、公開以外は無料でできるのが初心者にやさしい。あと、Webサイトに開発に役立つ記事がたくさん有志によって公開されているところも助かります。

簡単なアプリから開発を始めてみます。その中で、逆引き的に役だった記事をまとめていきます。

2011年10月9日日曜日

Intel MacでMicrosoft Office 2007を起動してみる


MacでWindowsアプリケーションを動かすためには、VMware Fusion、Parallels Desktopなどの仮想化マシン以外にも、Windowsの互換レイヤーを使ったCross Over Macを利用する手もある。

仮想マシンと比べたときの互換レイヤーの利点は、
・Windows OSのメディアが必要ない
・オーバーヘットが少なく、動作が軽い

ただ、全てのソフトに対応している訳ではない。

Cross Over Mac 10がLion対応とのことで、手元にあったOffice 2007を動かしてみた。
30日体験版があるので、試してみる。

■製品特徴
http://www.netjapan.co.jp/r/product_mac/com_10/

■動作情報(ソフトウェア)
http://www.netjapan.co.jp/r/product_mac/com_10/app_list.php

■30日体験版ダウンロード
http://www.netjapan.co.jp/r/download/trial_mac/com_10/

インストールはいつもの、圧縮ファイルを解凍して、.APPファイルをコピーするだけ。

起動すると、ようこそ画面が表示されるので、「Windowsアプリケーションをインストール」をクリックする。
 ここでOfficeのインストールディスクを入れると、自動的に認識されて、簡単にインストールを始められる。「インストール」をクリックします。

ちなみに、Officeのサービスパック等は、この画面の「サービスパックとアップグレード」から選択して、適用する必要があります。
 ひたすら待ち時間・・・
途中、何回かOfficeを動かすために必要なソフトウェアのインストール画面が表示されます
。画面の指示に従って、インストールします。


やっと来ました、Officeのインストール画面です。

「プロダクトキー」を入力して、「次へ」をクリックします。


長ったらしいけど、「次へ」をクリックします。

「今すぐインストール」をクリックします。


インストール完了すると、Officeアプリが格納されたフォルダが表示されます。
Spotlightから起動できるので、格納場所なんて気にしなくて大丈夫です。


Excelを起動してみました。問題なく入力できます。

ただ、日本語入力のIME的なバーや変換一覧が出てこない・・・
こういうものなのでしょうか!?仕組みがよく分からない。
でも、他は問題なさそうな感じ。まだ、30日あるので試してみます。