UserManager – Android 4.2


20130603muti_user

Android 4.2 から、マルチユーザ用のライブラリとして、UserManagerUserHandle が追加されました。
これで取得できる情報は、SerialNumber だけです。
これは、owner が 0 (ゼロ)で、ユーザを増やす毎に、10, 20, 30 という番号が付与されます。

UserHandle handle = Process.myUserHandle();     
UserManager manager = (UserManager) getSystemService( USER_SERVICE );
int number = manager.getSerialNumberForUser( handle );

SerialNumber は、ローカル領域の識別などに使われます。
シングルユーザ・モードのとき
 /data/data/<プロジェクト名>/
マルチユーザ・モードのとき
 /data/user//<プロジェクト名>/
20130630multi_user_dir_single
20130630multi_user_dir_multi

なお、UserManagerのソース を見ると、getUsers という隠しメソッドが用意されています。
ユーザの一覧が取得できるようです。


エミューレータでマルチユーザを試す


20130630multi_user_setting

Android 4.2 から、1台の端末を複数の人で共有する マルチユーザ がサポートされた。
エミューレータでマルチユーザが設定できるので、試してみた。

(1) エミューレータを起動する。

(2) PCからマルチユーザを有効にする
$ adb shell
# su
# setprop fw.max_users 5

注意
これはエミューレータの起動時に、毎回行う必要がある。
マルチユーザの設定自体は、保存されている。

(3) Settings に Users が表示される。
20130630multi_user_enable

(4) 自分の名前を顔写真を設定する。
(5) ADD USER をクリックすると、再起動される。
(6) ロック画面に、自分と New User が表示される。
(7) New User を選んで、ロックを解除する。
(8) New User の名前を顔写真を設定する。

(9) 再起動すると、二人のユーザが表示される。
20130630multi_user_login

参考
Android 4.2 JellyBeanがリリースされました
How to enable multiuser support in AVD 4.2


キーボードとキーマップの対応


20130624keyboad_keymap_system 20130624keyboad_keymap_app

システム設定画面の「言語と入力」では、外部キーボードとキーマップの対応が表示されます。
これをアプリでも実現します。
InputManager のソースを読むと、getCurrentKeyboardLayoutForInputDevice という非公開のメソッドが用意されています。
これを リフレクション を利用して、実行します。

ソースコードは code.google にて公開しています。

参考
リフレクションをつかってメソッドを呼び出す – Tech Booster


MAC で Ubuntu を動かす (デュアルブート)


20130618ubuntu_boot

ブートローダー
(1) rEFIt をインストールします。

ハードディスク
(1) MAC のディスクユーティリティを使って、ハードディスクにLINUX 用のパーティションを作成します。
LINUX のファイルシステム ext がないので、ひとまず FAT を選択します。
小1時間ほどかかるので、気長に待ちます。
20130618disk_utility

USBメモリ
(1) MAC に USBメモリを差します。
(2) ドライブ名を確認します。

df -h

(3) Ubuntu の ISO イメージをダウンロードします。
(4) UNetbootin をインストールします。
(5) UNetbootin で USBメモリ に ISO イメージ を作ります。
20130618unetbootin

インストール
(1) MAC に USBメモリを差したまま、再起動します。
(2) rEFIt の OS 選択画面になります。
(3) LINUX (ペンギンのシンボル) を選びます。
(4) USBメモリから起動して、Ubuntu のインストーラーが立ち上がります。
(5) 以降、質問に答えて、先に進むと、インストールは完了します。
20130618refit

要注意
インストール先のパーティションを間違わないように。
うっかり、MAC OS のあるところを選択すると、MAC OS が消えてしまいます。

利点
Ubuntu on VirtualBox では、USBメモリを認識しませんでした。
デュアルブートでは、USBメモリはもちろんのこと、SDカードスロットも認識します。


UNetbootin


20130618unetbootin

UNetbootin (Universal Netboot Installer) は、Live USB を作るソフトです。
主要な Linux ディストリビューションが用意されていますが、英語版のうえ、最新版への更新が遅いようです。

UNetbootin をダウンロードして、インストールします。

使い方は簡単です。
(1) 別途 ダウンロードした ISO イメージを選択します。
(2) USBメモリのドライブ名を選択します。
事前に下記のコマンドでドライブ名を確認しておきます。

df -h

(3) OK をクリックして、Live USB を作成します。

参考
UNetbootin – wikipedia
便利すぎて泣ける 〜UNetbootinの巻〜


rEFIt


20130618refit

rEFIt は、MAC に MAC OS と Windows OS と Linux OS などのマルチブート環境を作るソフトです。
MAC の Extensible Firmware Interface に対応しています。
なお、MAC には BootCamp というデュアルブート環境が用意されていますが。Linux には対応していません。

rEFIt をダウンロードして、インストールします。
MAC を再起動すると、rEFIt のOS選択画面が表示されます。

参考
rEFIt のインストール


MAC で Ubuntu を動かす (VirtualBox)


20130617ubuntu_virtulabox

MAC で Ubuntu を動かす手順は、
Windows を動かす手順 と、ほぼ同じです。

1. VirtualBox
無料の仮想化ソフトです。

(1) VirtualBox をダウンロードして、インストールする。
(2) Linux 用の仮想マシンを設定する。
 HDD 40GB, メモリ2GB

2. Ubuntu
Linux ディストリビューションのひとつで、オープンソースです。

(1) ISO イメージ をダウンロードします。
(2) 仮想マシンを起動します。
(3) 起動するデバイスを聞かれるので、 ISO イメージを指定します。
(4) Ubuntu のインストール画面になります。
(5) 以降、質問に答えて、先に進むと、インストールは完了します。

不具合
私の環境では、USBメモリを認識しません。
仕方ないので、デュアルブート方式にしました。


RACER: A Chrome Experiment


20130616racer

RACER: A Chrome Experiment を試してみた
左から、Nexus10、GalaxyNexus、Galaxy3S。
Galaxy3S は画面の大きさがうまくいっていない。

Google I/O 2013 で発表されたものです。
複数台のモバイル端末を使ってひとつのレースが楽しめるゲームです。
Chrome上で動作するWEBアプリです。
モバイル・アプリではありません。ダウンロードは不要です。

遊び方
最大で5台までのスマホやタブレットを横に並べます。
親となる1台を決めます。
他の端末は親に表示される5桁のアルファベットを入力します。
画面にタッチすると、レースの開始画面になります。
画面にタッチし続けるとエンジン音とスピードがあがります。
速すぎると、スピンアウトします。

注意
3G回線だと遅いと怒られます。
WiFi で試してください。


英語キーボードと日本語キーボードの違い


20130617keyboard_109

キーボードは、キーの数で分類されます。

(1) 101キーボード
英語キーボードとか、USキーボードと称されるものです。

(2) 106キーボード
日本語キーボードと称されるものです。
101キーボードに下記の5個が追加されています。
「変換」「無変換」「カタカナ/ひらがな」「半角/全角」「@」

Shiftキーを押したときのキーの意味も変更されています。
英語キーボードでは、1234567890 をシフトしたときは、! @ # $ % ^ & * ( ) になります。
日本語キーボードでは、! ” # $ % & ‘ ( ) なし となります。
その他の記号キーも微妙に違います。
(なぜここを変更したのか疑問ですね)

(3) 109キーボード
Windowsキーボードと称されるものです。現在はこれが主流です。
106キーボードに下記の3個が追加されています。
「Windows」2個と「メニュー」

参考
キー配列 – wikipedia