Android

2in1電話発信アプリ『2in1Dialer』公開

1年以上放置していたブログですが、、久しぶりの更新とあわせてアプリ公開の告知を。。 ドコモの2in1というサービスを利用すると、1台のFOMA端末で、2つの電話番号・メールアドレスを利用することができますが、機種変更などでAndroid端末にSIMを差し替えてもそのまま使うことができません。 #そのままでもBナンバーへの着信はできます。 #Bナンバーの電話発信とBアドレスのメール送受信ができません。 私はプライベート用(A)と仕事用(B)で2in1を利用していたので、メールはともかく電話だけでもAndroid端末で使えるようにできないものかとこのアプリを作りました。 ◆2in1 Dialer Androidマーケットにて公開中です。 端末に標準搭載されている電話アプリと同じように、通話履歴・ダイヤルパッド・電話帳検索から電話相手の番号を指定してBナンバー発信できます。(もちろんAナンバー発信もできます。) 【動作環境】 ・Android 2.1以降 ・動作確認済みの機種:Xperia(2.1), GalaxyS, REGZA Phone(T-01C) 動作確認やバグレポートお待ちしてます。よろしくお願いします。

Categories: 2in1 Dialer, Android | 4 Comments

Signal Strengthの取得方法

アンテナ表示のもとになる信号強度の取得方法が,日本語サイトであまり紹介されてなかったので載せてみます. まず,以下をimport import android.content.Context; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; PhoneStateListenerクラスには,信号強度が変化したときに実行されるためのメソッド(onSignalStrengthChanged)が用意されており,このメソッドを実装して継承したクラス(以下の例ではSignalStrengthListener)を定義する. public class SignalStrengthListener extends PhoneStateListener { ・・・ @Override public void onSignalStrengthChanged(int asu)?? ?{ this.asuTextView.append("\n\t"+this.c+":\t"+String.valueOf(asu)+"asu \t" + String.valueOf(-113+2*asu)+"dBm"); } } ※asuの値はメソッドが呼ばれたときの信号強度が格納されている.  上記は取得したasuなどの文字列をあるTextViewに表示している. そして,getSystemService()から取得したTelephonyManagerインスタンスにリスナ登録すればOK. SignalStrengthListener ps = new SignalStrengthListener(); TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); tm.listen(ps, PhoneStateListener.LISTEN_SIGNAL_STRENGTH); ちなみに,Androidの環境で取得できる受信信号強度の単位は「asu」となっている. どうしてdBmではないんだと調べてみたら,AndroidDeveloperサイトでの議論を発見. 無線屋さんだったら当たり前?なのかもしれないですが,GSMではasu,UMTSではdBmとそれぞれ違う単位が用いられているようです.dBmの値は, dBm = -113 + 2*asu で換算できるようです.

Categories: Android, misc. | Leave a comment