@blog.justoneplanet.info

日々勉強

androidで端末の情報にアクセスする

■SIMのシリアル番号

以下のようにすることでSIMのシリアル番号にアクセスできる。

package info.justoneplanet.android.sample.id;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;

public class AndroidIdActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        Log.e("SIM", telephonyManager.getSimSerialNumber());
    }
}

パーミッション

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

■UUID

UUIDは不変で128bitの固有のIDである。

一元管理していたり,重複をチェックする仕組みがないのに,世界でただ一つのIDを自由にいくらでも作って自分の機器を管理・識別するために使える

package info.justoneplanet.android.sample.id;

import java.util.UUID;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

/**
 * AppUUID
 * @author justoneplanet
 */
public class AppUUID {
    private static String uuid = null;
    private static final String UUID_KEY = "UUID_KEY";
    
    public static String get(Context context) {
        if (uuid != null) {// 既にapp内からinvokeされている場合
            return uuid;
        }
        
        SharedPreferences sharedPreferences = context.getSharedPreferences(UUID_KEY, Context.MODE_PRIVATE);
        uuid = sharedPreferences.getString(UUID_KEY, null);
        if (uuid == null) {// 何も設定されていない場合
            uuid = UUID.randomUUID().toString();// randomな文字列を生成
            Editor editor = sharedPreferences.edit();
            editor.putString(UUID_KEY, uuid);
            editor.commit();// 保存
        }
        return uuid;
    }
}

パーミッションは必要ない。

Log.e("AppUUID", AppUUID.get(getApplicationContext()));

アプリ間の固有の値であり再インストールすれば値は変わるので潔い。

■ANDROID_ID

package info.justoneplanet.android.sample.id;

import android.app.Activity;
import android.os.Bundle;
import android.provider.Settings.Secure;
import android.util.Log;

public class AndroidIdActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        String androidId = Secure.getString(getContentResolver(), Secure.ANDROID_ID);
        Log.e("ANDROID_ID", androidId);
    }
}

■IMEI

package info.justoneplanet.android.sample.id;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;

public class AndroidIdActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        Log.e("IMEI", telephonyManager.getDeviceId());
    }
}

パーミッション

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment