ラベル 設定 の投稿を表示しています。 すべての投稿を表示
ラベル 設定 の投稿を表示しています。 すべての投稿を表示

2011年6月30日木曜日

[Android] 自分の電話番号を知るコード

知っているようで案外知らない。Android端末での自局番号取得方法。

String mNumber = null;
TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

// 取得
mNumber = telManager.getLine1Number();

たったこれだけのコードでとれます。

ありがちですが、テキストボックスに入力してもらった電話番号と比べてみて判断してみたりする。

     EditText inputNumberText; 
     inputNumberText = (EditText) findViewById(R.id.inputText1);
     String inputNumber = inputNumberText.getText().toString();
     if(mNumber.equals(inputNumber)) {
      // とおるがいい
      Toast.makeText(this, "とおるがいい", Toast.LENGTH_SHORT).show();
      Intent intent = new Intent(this,FourthActivity.class);
      startActivity(intent);
      finish();
      
     } else {
      // 帰れ!!
      Toast.makeText(this, "まーちがーえたーねー。じゃ☆", Toast.LENGTH_SHORT).show();
      finish();
     }

Android端末ってそんなに通話しないからなぁ・・・。
というわけで案外電話番号が設定からみれることは知られてなかったりする。

2011年6月27日月曜日

[Android] 端末のSIMの状況を取得する

先日、上司に向けてアプリをつくったのですが、
かるーくスルーされたので「きー!!(怒)」となっています。

ま、そんな愚痴はともかく、
今日はSIMの有無を確認するコードを。

SIMの状況を取得するにはTelephonyManagerを使用します。
getSystemServiceでシステムの状況を取得すれば、判定することができます。

まずは取得。

int mStatus = 0;

TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
mStatus = telManager.getSimState();

これでInt型で取得することができるので、あとは状況に応じて処理をふっていきます。

switch(mStatus) {
 case TelephonyManager.SIM_STATE_UNKNOWN: // SIM不明
     Toast.makeText(this, "まぁ、許す", Toast.LENGTH_SHORT).show();
     break;
 case TelephonyManager.SIM_STATE_ABSENT: // SIMなし
        Toast.makeText(this, "ゆるさない", Toast.LENGTH_SHORT).show();
        break;
 case TelephonyManager.SIM_STATE_PIN_REQUIRED: // PIN待ち
        Toast.makeText(this, "まぁ、いいか", Toast.LENGTH_SHORT).show();
        break;
 case TelephonyManager.SIM_STATE_PUK_REQUIRED: // PUK待ち
        Toast.makeText(this, "うーん、悩む", Toast.LENGTH_SHORT).show();
        break;
 case TelephonyManager.SIM_STATE_NETWORK_LOCKED:  // ロック
     Toast.makeText(this, "エクセレント!!", Toast.LENGTH_SHORT).show();
        break;
 case TelephonyManager.SIM_STATE_READY:  // 在り
        Toast.makeText(this, "とおるがいい", Toast.LENGTH_SHORT).show();
        break;
 default:
     Toast.makeText(this, "わかんないから許す", Toast.LENGTH_SHORT).show();
        break;
         
}

たったこれだけです。
まぁ、一応例外処理としてdefaultをいれております。
上のコードではSIMがある場合のみ次の処理へいくように・・・というためにかいたのですが、
分かりやすくするためにToastでメッセージを表示するだけにしておきました。

特にpermissionの設定もいらないので
適当にごにょごにょするには良いのではないかと思います。
設定値を勝手に変更すれば、エアな感じにもできるんじゃないのかな?と勝手に憶測。

といっても、現物SIMがないと結局は通信なんぞできないはず(なのかな?)なので
あんまり使うことはないかもですけど。

2011年6月22日水曜日

[Android] バックライトを常時ONにしてみる(ただしアプリ起動中のみ)

いつのまにか設定からバックライトの常時Onがきえているので
なんとなくアプリで実装してみる。

本当はずーっととどめておきたかったのですが、アプリのみでしか
できないので「あーうー」となっています。

というわけで本日のコード。

Window windows = getWindow();     
     String timeout = Settings.System.getString(this.getContentResolver(), "screen_off_timeout");

     if(timeout.equals("-1")) {
      // 常時
      
      // その他に変更
      windows.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
      
      
     } else {
      // その他
      
      // 常時に変更
      windows.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
     }

View単位でやるならこっち。

View LayoutView = (LinearLayout) findViewById(R.id.LayoutView);
     
     if(LayoutView.getKeepScreenOn()) {
      // 常時
      
      // その他に変更
      LayoutView.setKeepScreenOn(false);
     } else {
      // その他
      
      // 常時に変更
      LayoutView.setKeepScreenOn(true);
     }

解説したいですが、なんだか「がー」な気分なのでまた。