Browsing articles tagged with " getSystemService"

WiFiとBuletoothを簡単に有効にする

4月 6, 2011   //   by @mhidaka   //   デバイス  //  1 Comment

Androidの電源管理ウィジェットのように無線LANやBluetoothの有効・無効を切り替える方法を紹介します。
無線LAN、WifiManagerについてはWiFiの情報を取得するでSSIDの取得方法など情報取得の方法を解説しています。。ソースコードはGoogleCodeのこちらのリポジトリより取得できます。
それぞれのデバイスの制御方法は以下の通りです

  • 無線LAN:WifiManager
  • Bluetooth:BluetoothAdapter

無線LANはセンサー類と同様にContext#getSystemService(WIFI_SERVICE);でManagerを取得して切り替えることが可能です。Bluetoothは無線LANとは異なり、BluetoothAdapter#getDefaultAdapter();によりデバイスの有無を確認できます(nullが返却されればBluetoothはサポートされていない)。

電源管理ウィジェット(標準) トグルボタンによる有効・無効制御

補足:AIRPLANE MODE

また、調査のなかで、3G通信など全ての通信をOFFにする「AIRPLANE MODE」への変更方法も見つけましたが、Android DevelopersのReferenceによると、Systemによる利用を前提としてprotected な intentであり、ユーザによる任意の切り替えは推奨されていません。
Intent.ACTION_AIRPLANE_MODE_CHANGED

Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", true);
sendBroadcast(intent);

上記Intentをブロードキャストすることでエアプレーンモードに移行できます(システム利用が前提でユーザ利用は非推奨)。

Bluetooth/無線LANの切り替えサンプル・ソースコードは続きから
Read more >>

DownloadManagerを使ってファイルをダウンロードする

12月 9, 2010   //   by kkato   //   アプリケーション  //  No Comments

先日、GoogleからAndroid SDK 2.3が発表されました。Android Developers内の紹介ページはこちらです。

SDKの概要は色々なサイトで紹介されているので、TechBoosterでは2.3(API Level9)から追加された新機能をどのように使うのかというところに着目して紹介していきたいと思います。

今回は、ダウンロードマネージャ(DownloadManager)について紹介します。

ダウンロードマネージャ(DownloadManager)は、サイズの大きいファイルをダウンロードするときに用いるクラスです。ダウンロードの状態を通知領域に表示させることも可能です。

DownloadManagerに関連するクラスが他に2つあり、今回は下記の3つのクラスを使ったサンプルを用意してみました。

  • DownloadManager
  • DownloadManager.Query
  • DownloadManager.Request

それでは続きでサンプルコードと共に説明してきます。

Read more >>

画面サイズを取得する

8月 14, 2010   //   by kseto   //   ユーザインターフェース  //  1 Comment

アプリケーションを開発する際、端末によってその画面サイズはバラバラです。
アプリケーションが端末の画面サイズを取得することができれば
動的に画面デザインを構成することができます。
詳しくは続きからどうぞ。

Read more >>

センサを使ってAndroid端末の傾きを知る

6月 29, 2010   //   by @mhidaka   //   デバイス, ユーザインターフェース  //  3 Comments

Androidではたくさんのセンサ・デバイスが搭載されています。
機種によって、センサの種類は異なりますが、今回は最もよく使われるセンサの一つ、傾き(方向)センサの使い方を解説します。

Androidのセンサは以下の通り、SensorクラスのConstantとして定めています。

センサ一覧(センサクラスの定数)

定数 説明
TYPE_ACCELEROMETER 加速度センサ
TYPE_ALL 全部のセンサを指定
TYPE_GYROSCOPE ジャイロスコープ
TYPE_LIGHT 照度センサ
TYPE_MAGNETIC_FIELD 地磁気センサ
TYPE_ORIENTATION 傾きセンサ(非推奨定数)
TYPE_PRESSURE 加圧センサ
TYPE_PROXIMITY 接近センサ
TYPE_TEMPERATURE 温度センサ


TYPE_ORIENTATIONが非推奨となっており、今後のバージョンアップを考えると、いままでと同じ使い勝手で傾きを求めることは遠慮した方がよさそうです。

傾き導出方法(従来)

もちろん非推奨ではありますが、今まで通りの方法でも、傾き(方向)を求めることが出来ます。
以下は、従来方式のサンプルです。

List<Sensor> sensors = SensorManager.getSensorList(Sensor.TYPE_ORIENTATION);
Sensor sensor = sensors.get(0);
SensorManager.registerListener(this,sensor,SensorManager.SENSOR_DELAY_NORMAL);
…
public void onSensorChanged(SensorEvent event) {
  if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
     (処理など)... event.values[0];
  }
}

Android 2.2推奨の傾き取得方法

続きではAndroid2.2で推奨されているgetOrientationメソッドをつかった傾きセンサ値の取得方法を説明します。
Read more >>

AndroidでGPSセンサを利用する方法

6月 9, 2010   //   by kkato   //   デバイス  //  2 Comments

たいていのAndroid端末にはGPSセンサが搭載されており、位置情報を取得することが可能です。また、ネットワーク(3G/WiFi)を利用して位置情報を取得することも可能です。

HT-03A、Xperia、Desire、Nexus OneにもGPSが搭載されていますよね。
今回はAndroidでGPSセンサを利用する方法を説明します。

ポイントは以下の通りです。

  • マニフェストファイル(AndroidManifest.xml)にGPSのパーミッションを追加する
  • ロケーションマネージャ(LocationManager)、ロケーションプロバイダ(LocationProvider)の取得
  • 位置情報リスナーの実装

それでは順に説明していきます。

Read more >>

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です