主にAndroid プログラミング

主にAndroid

Androidの情報を中心に、自分の備忘録を兼ねて書いてます

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサードリンク

[edit]

CM: --
TB: --

page top

アプリがインストールされているデバイスを、UUIDを使って識別する方法が、Android Developers Blogに発表された。
コピー防止に役立ちそう。

以下適当意訳。

デバイス個別識別番号

TelephonyManager.getDeviceId() で取得可能。

無線LAN専用デバイスや音楽プレーヤーのような非携帯電話は、DeviceIDを持っていない。

工場出荷時に戻せるから永続性がない。

READ_PHONE_STATEパーミッションが必要。

アスタリスクまたはゼロを返バグがある。



MACアドレス

無線LANがオンじゃないと取れない場合がある。



シリアル番号

2.3からandroid.os.Build.SERIALを使って取得可能。



ANDROID_ID

Settings.Secure.ANDROID_IDで取得可能。
デバイス初回起動時に、デバイスに対してユニークな値として作成される。
2.2以前はバグがあり、信頼性が低い。



まとめ

Settings.Secure.ANDROID_IDを使うのがおすすめ。



ソース:Android Developers Blog
スポンサードリンク

[edit]

CM: 0
TB: 0

page top

ダイアログ作成 onCreateDialogについて 

2011/03/29
Tue. 01:14

Activity#showDialog(ID) でダイアログを呼び出した場合、すでにActivity#onCreateDialog(ID) で作成してあれば、それが呼び出される。
つまりActivity#showDialog(ID)を呼び出す度に何度もインスタンスが作成される、なんてことはない。

そのため、自分でフィールドにDialogを作成して管理するより楽だし、スマートな気がする!


    private Dialog dialog;
 
    public void showDialog(View view){
        if(dialog == null)
            dialog = createDialog();
 
        dialog.show();
    }
 
    private Dialog createDialog() {
        Log.v("alert", "createDialog");
        AlertDialog.Builder d = new AlertDialog.Builder(this);
        d.setTitle("test");
        d.setMessage("message");
        return d.create();
    }

↑と↓は同じ動作だが、↓はDialogの初期化チェックのロジックを入れる必要がない。 ダイアログがいくつもある場合は、↓のほうがメンテナンスが楽。

    private static final int DIALOG_ID = 1;
 
    @Override
    protected Dialog onCreateDialog(int id) {
        Dialog d = super.onCreateDialog(id);
        switch (id) {
        case DIALOG_ID:
            d = createDialog();
            break;
        }
        return d;
    }
 
    public void showDialog(View view){
        showDialog(DIALOG_ID);
    }
 
    private Dialog createDialog() {
        Log.v("alert", "createDialog");
        AlertDialog.Builder d = new AlertDialog.Builder(this);
        d.setTitle("test");
        d.setMessage("message");
        return d.create();
    }
スポンサードリンク

[edit]

CM: 0
TB: 0

page top

1. タブレット端末のような大きなスクリーンに対応していることを、AndroidManifest.xml に記述する

<supports-screens android:anyDensity="true"
        android:largeScreens="true" android:normalScreens="true" />



2. res フォルダに layout-large フォルダを作成し、その中にファイルを作成する
layout-large にないファイルは、layout から自動で読み込まれるため、タブレット端末用の差分ファイルだけで良い

また、横向きや縦向き用のレイアウトを作成したい場合は、layout-large-land, layout-large-port に作成する
画像も自動で変えたいときは、drawable-large-land や drawable-large-port フォルダを作成してそこに入れる

res/drawable-large-land  -- タブレット横用画像
res/drawable-large-port  -- タブレット縦用画像
res/layout-large       -- タブレット縦横兼用レイアウト
res/layout-large-land    -- タブレット横用レイアウト
res/layout-large-port    -- タブレット縦用レイアウト


参考:GALAXY Tab Perfect Manual

Motorola Xoom MZ600 【アンドロイド3.0 Honeycomb搭載】【ジャパエモ保証1年付き】
Motorola Xoom MZ600 【アンドロイド3.0 Honeycomb搭載】【ジャパエモ保証1年付き】
スポンサードリンク

[edit]

CM: 0
TB: 0

page top

EditTextのandroid:imeOptions 

2011/03/23
Wed. 14:34

EditTextのandroid:imeOptionsで以下を指定すると、IMEのEnterの部分の名称が変わる。

actionGo
actionSearch
actionSend
actionNext
actionDone


スポンサードリンク

[edit]

CM: 0
TB: 0

page top

TextViewのlayout/xmlのプロパティについて 

2011/03/23
Wed. 14:33

TextViewのxmlのプロパティについてまとめてあるページ
スポンサードリンク

[edit]

CM: 0
TB: 0

page top

2017-10
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • »

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。