2015-12-01から1ヶ月間の記事一覧
GestureLibraryを使い新しいジェスチャーを保存し、次回検知することができる。 GestureLibraryのロードメソッド static GestureLibrary fromFile(String path) static GestureLibrary fromFile(File path) static GestureLibrary fromPrivateFile(Context c…
Androidは、 1. GestureDetectorを提供し、ジェスチャーを検知する 2. GestureLibraryを提供し、開発者がジェスチャーを追加し、対応するAPIを使い検知する GestureDetector.onGestureListnerの一部イベント boolean onDown(MotionEvent e) boolean onFling(…
実際にSQLiteDatabaseのメソッドを使ってSQLiteDatabaseオブジェクト取得は煩雑のためお勧めしない。 通常はAndroidが提供するSQLiteOpenHelperクラスを使う。 SQLiteOpenHelperのメソッド synchronized SQLiteDatabse getReadableDatabase() synchronized S…
① activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:weightSum="1"> </linearlayout>
SQLiteDatabaseは軽量RDBMSであり、データベースは一つのファイルである。 SQLiteDatabaseオブジェクト取得(一部) static SQLiteDatabse openDatabase(String path, SQLiteDatabse.CursorFactory factory, int flags) static SQLiteDatabse openOrCreateData…
Androidはjava標準IO以外に専用のIO APIを提供している。 Contextが提供するIOストリーム FileInputStream openFileInput(String name) FileOutputStream openFileInput(String name, int mode) MODE_PRIVATE MODE_APPEND MODE_WORLD_READABLE MODE_WORLD_WR…
SharedPreferences 主に少量データのやり取りに使用する。 設定のON、OFFとか。 Editor SharedPreferencesは書き込み機能はないので、edit()と通して対応するEditorオブジェクトを 取得して書き込みを行う。 SharedPreferencesの一部メソッド boolean consta…
例: ACTION_TIME_CHANGED - 時刻変更~ ACTION_BATTERY_CHANGED - バッテリ容量変更 ACTION_BOOT_COMPLETED - システム起動完了 など 詳細: 【Standard Broadcast Actions】 http://developer.android.com/intl/ja/reference/android/content/Intent.html …
Ordered Broadcastは 指定した順位で受信する(setPriority() Or android:priotiry) 次の受信者にデータ送信できる Broadcast Intent終了できる(abortBroadcast()) サンプルコード ① MainActivity.javaのボタンでOrdered Broadcastを行う package com.example…
Normal Broadcastは非同期であり、同時にすべての受信者が受信する。 サンプルコード ① MainActivity.javaのボタンでBroadcastを行う package com.example.liguofeng.mynormalbroadcastreceiver; import android.content.Intent; import android.support.v7.…
BroadcastReceiverはプログラム(ユーザ開発、システム内部プログラム)が発信するBroadcast Intentを受信する。 BroadcastReceiverの本質はグローバル(システムレベル)リスナーである。 BoradcastReceiverの実装 BoradcastReceiverのonReceiver(Context conte…
振動を制御するシステムサービスのサンプルコード ① 権限追加(AndroidManifest.xml) <uses-permission android:name="android.permission.VIBRATE"/> ② メインActivity (layoutは省略) package com.example.liguofeng.mytelephonymanager; import android.app.Service; import android.os.Vibrator; import android.suppor</uses-permission>…
TelephonyMangerを利用して着信状態を監視するServiceのサンプルコード。 概要: 着信イベントを取得し、ファイルに書き出す。 ※権限追加とService起動などは必要。 package com.example.liguofeng.mytelephonymanager; import android.app.Service; import …
TelephonyManagerは携帯の状態を管理するためのシステムサービスである。 大量のgetXXX()を提供してあるので、携帯関連の情報を色々取得できる。 詳細は http://developer.android.com/intl/ja/reference/android/telephony/TelephonyManager.html オブジェ…
IntentServiceもServiceの一種だが、特殊な機能を提供してくれる。 まず、なぜIntentServiceが必要なのか。 通常Seriviceの問題点 Serivceは独自のスレッドではなく、アプリと同じスレッド内である 新スレッドではないので、時間がかかる処理を書くのはよく…
Serviceと通信するためには、 bindService()とunBindService()を利用してServiceの起動と終了を行う。 Serviceを実装する際に、 IBinder onBind(Intent intent)でService通信するためのオブジェクトを返す必要がある。 bindService(Intent service, ServiceC…
Androidにおいて、Serviceコンポーネントは実行可能プログラムである。 Activityとの比較 Activityと同じく、lifecycleがあり、生成、配置する必要がある Activityと同じく、Contenxtの派生クラスであるので、ContextクラスのgetResource(), getContentResol…
AndroidはContentObserverを提供し、ContentProviderのデータ変更を監視する。 SMS発送を監視するサンプル (サンプルではActivityですが、Activityを起動しないと監視できないので、現実的ではない。 Serviceで実装すべきである) <uses-permission android:name="android.permission.READ_SMS"/> package com.example.lig</uses-permission>…
Android自身は大量のContentProviderを提供してあり、それぞれquery(),insert(),delete(),update()などを実装してある。 Android連絡先のUri ContactsContract.Contacts.CONTENT_URI : 連絡先管理Uri ContactsContract.CommonDataKinds.Phone.CONTENT_URI : …
実装の流れ ContentProviderサブクラス実装 AndroidManifest.xml登録 ContentResolverサブクラス実装 実行 package com.example.liguofeng.contentprovidersample; import android.content.ContentProvider; import android.content.ContentValues; import a…
ContentProviderはAndroidアプリの間でデータやり取りを行うために用意されてある標準APIである。 データ取得と提供 Androidアプリのデータ提供は、ContentProviderを利用し、Uri指定で提供する。 Androidアプリのデータ取得は、ContentResolverを利用し、Ur…
Tabページを追加する際のTabHost.TabSpectのメソッドは setContect(int viewId) - id指定のViewをTabページにする setContent(Intent intent) - Intentに対応するActivityをTabページにする サンプルコード TabActivity1,TabActivity2,TabActivity3と対応す…
FlagはIntentに対して制御を追加する。 addFlags()で追加する。 常用Flag FLAG_ACTIVITY_BROUGHT_TO_FRONT このFlagで起動したActivityが既に存在する場合、Activityキューから前面に出す。 FLAG_ACTIVITY_CLEAR_TOP このFlagはsingleTaskモードで起動したAc…
IntentのExtraはAction間のデータやり取りで利用される。 Extra属性値はBundleオブジェクトである。 サンプルコード
Data属性はAction属性にデータを提供する。 特性: Data属性値はUriオブジェクトである Uriの形式 scheme://host:port/path 例:content://com.android.contacts/contacts/1 Type属性はData属性が指定したUriのMINEタイプを指定する。 abc/xyzのフォーマット…
package com.example.liguofeng.intentsample; import android.app.Activity; import android.content.ComponentName; import android.content.CursorLoader; import android.content.Intent; import android.database.Cursor; import android.net.Uri; impo…
Intentを通して自分アプリ以外、システムActivityを起動することも可能です。 適切な権限を設定し、Adnroid内部で提供している大量のAction、Categoryの定数を利用すればできる。 Intentの定数 http://developer.android.com/intl/ja/reference/android/cont…
IntentのComponent属性はComponentNameオブジェクトを設定し、 どのコンポーネントを起動するかを指定する Componentのコンストラクタ ・Component(String pkg, String cls) ・Component(Context pkg, String cls) ・Component(Context pkg, Class cls) Inte…
Action属性は抽象的な振る舞いである。 これは、Struts2のAction処理後、SUCCESSを返すと似ている。 使用流れ ① AndroidManifest.xmlのAcvivityのAction属性、Category属性を設定する ② ActivityでIntentにActionとCategoryを設定する ③ IntentでActivityを…
Intentは日本語で「意図」という意味である。 ActivityからActivity(Service, BroadcastService)を起動する時に直接起動するのではなく、Intentで意図(どのActivityを起動)を表して起動する。 Androidの重要なコンポーネントであるActivity、Service、Broadc…