Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何记录android手机属性?_Android_Logging_Mobile - Fatal编程技术网

如何记录android手机属性?

如何记录android手机属性?,android,logging,mobile,Android,Logging,Mobile,我想记录用户实验的所有内容。但我也想记录android手机设备id,哪个手机品牌,什么是应用版本。。。像这样的 Firebase Analythics和Appsee就是这样做的。我从哪里开始 编辑: 想想看,我将编写一个SDK,用这个SDK可以学习一切。这是获取设备属性代码的示例 public String getDeviceName () { String manufacturer = Build.MANUFACTURER; String model = Build.MODEL

我想记录用户实验的所有内容。但我也想记录android手机设备id,哪个手机品牌,什么是应用版本。。。像这样的

Firebase Analythics和Appsee就是这样做的。我从哪里开始

编辑:


想想看,我将编写一个SDK,用这个SDK可以学习一切。

这是获取设备属性代码的示例

public String getDeviceName () {
    String manufacturer = Build.MANUFACTURER;
    String model = Build.MODEL;
    if (model.startsWith (manufacturer)) {
        return capitalize (model);
    }
    else {
        return capitalize (manufacturer) + " " + model;
    }
}

public static int getAppVersion () {
    try {
        PackageInfo packageInfo = MainApplication.getContext ().getPackageManager ()
                .getPackageInfo (MainApplication.getContext ().getPackageName (), 0);
        return packageInfo.versionCode;
    } catch (PackageManager.NameNotFoundException e) {
        // should never happen
        throw new RuntimeException ("Could not get package name: " + e);
    }
}
public static String getAPIlevel() {
    return "Android API :" + Build.VERSION.SDK_INT;
}

public static String getDeviceName() {
    String manufacturer = Build.MANUFACTURER;
    String model = Build.MODEL;
    if (model.startsWith(manufacturer)) {
        return SubUtils.capitalize(model);
    } else {
        return SubUtils.capitalize(manufacturer) + " " + model;
    }
}

public static String getDeviceVersion(Context activity) {
    String v;
    try {
        v = activity.getApplication().getPackageManager().getPackageInfo(activity.getPackageName(), 0).versionName;
        return v.replace("-staging", "");
    } catch (PackageManager.NameNotFoundException e) {
        return null;
    }
}

@SuppressLint("HardwareIds")
public static String getUDID(Context activity) {
    if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
        TelephonyManager tm = (TelephonyManager) activity.getSystemService(Context.TELEPHONY_SERVICE);
        String tmDevice = "" + tm.getDeviceId();
        String tmSerial = "" + tm.getSimSerialNumber();
        String androidId = "" + Settings.Secure.getString(activity.getContentResolver(), Settings.Secure.ANDROID_ID);
        UUID deviceUuid = new UUID(androidId.hashCode(), ((long) tmDevice.hashCode() << 32) | tmSerial.hashCode());

        return deviceUuid.toString();
    } else {
        return Settings.Secure.getString(activity.getContentResolver(), Settings.Secure.ANDROID_ID);
    }
}
public静态字符串getAPIlevel(){
返回“Android API:+Build.VERSION.SDK_INT;
}
公共静态字符串getDeviceName(){
字符串制造商=Build.manufacturer;
字符串模型=Build.model;
if(型号启动带(制造商)){
返回SubUtils.capitalize(model);
}否则{
返回SubUtils.capitalize(制造商)+''+型号;
}
}
公共静态字符串getDeviceVersion(上下文活动){
字符串v;
试一试{
v=activity.getApplication().getPackageManager().getPackageInfo(activity.getPackageName(),0).versionName;
返回v.replace(“-staging”,”);
}捕获(PackageManager.NameNotFounde异常){
返回null;
}
}
@SuppressLint(“HardwareIds”)
公共静态字符串getUDID(上下文活动){
if(ActivityCompat.checkSelfPermission(activity,Manifest.permission.READ_PHONE_STATE)==PackageManager.permission_已授予){
TelephonyManager tm=(TelephonyManager)activity.getSystemService(Context.TELEPHONY_服务);
字符串tmDevice=“”+tm.getDeviceId();
字符串tmSerial=”“+tm.getSimSerialNumber();
String androidId=”“+Settings.Secure.getString(activity.getContentResolver(),Settings.Secure.ANDROID);

UUID deviceUuid=new UUID(android.hashCode(),((long)tmDevice.hashCode()这是获取设备属性代码的示例

public static String getAPIlevel() {
    return "Android API :" + Build.VERSION.SDK_INT;
}

public static String getDeviceName() {
    String manufacturer = Build.MANUFACTURER;
    String model = Build.MODEL;
    if (model.startsWith(manufacturer)) {
        return SubUtils.capitalize(model);
    } else {
        return SubUtils.capitalize(manufacturer) + " " + model;
    }
}

public static String getDeviceVersion(Context activity) {
    String v;
    try {
        v = activity.getApplication().getPackageManager().getPackageInfo(activity.getPackageName(), 0).versionName;
        return v.replace("-staging", "");
    } catch (PackageManager.NameNotFoundException e) {
        return null;
    }
}

@SuppressLint("HardwareIds")
public static String getUDID(Context activity) {
    if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
        TelephonyManager tm = (TelephonyManager) activity.getSystemService(Context.TELEPHONY_SERVICE);
        String tmDevice = "" + tm.getDeviceId();
        String tmSerial = "" + tm.getSimSerialNumber();
        String androidId = "" + Settings.Secure.getString(activity.getContentResolver(), Settings.Secure.ANDROID_ID);
        UUID deviceUuid = new UUID(androidId.hashCode(), ((long) tmDevice.hashCode() << 32) | tmSerial.hashCode());

        return deviceUuid.toString();
    } else {
        return Settings.Secure.getString(activity.getContentResolver(), Settings.Secure.ANDROID_ID);
    }
}
public静态字符串getAPIlevel(){
返回“Android API:+Build.VERSION.SDK_INT;
}
公共静态字符串getDeviceName(){
字符串制造商=Build.manufacturer;
字符串模型=Build.model;
if(型号启动带(制造商)){
返回SubUtils.capitalize(model);
}否则{
返回SubUtils.capitalize(制造商)+''+型号;
}
}
公共静态字符串getDeviceVersion(上下文活动){
字符串v;
试一试{
v=activity.getApplication().getPackageManager().getPackageInfo(activity.getPackageName(),0).versionName;
返回v.replace(“-staging”,”);
}捕获(PackageManager.NameNotFounde异常){
返回null;
}
}
@SuppressLint(“HardwareIds”)
公共静态字符串getUDID(上下文活动){
if(ActivityCompat.checkSelfPermission(activity,Manifest.permission.READ_PHONE_STATE)==PackageManager.permission_已授予){
TelephonyManager tm=(TelephonyManager)activity.getSystemService(Context.TELEPHONY_服务);
字符串tmDevice=“”+tm.getDeviceId();
字符串tmSerial=”“+tm.getSimSerialNumber();
String androidId=”“+Settings.Secure.getString(activity.getContentResolver(),Settings.Secure.ANDROID);

UUID deviceUuid=新UUID(android.hashCode(),((long)tmDevice.hashCode()崩溃日志有很多选项1)Firebase Analythics 2)Fabric崩溃日志有很多选项1)Firebase Analythics 2)Fabric如果不传递活动上下文,可能会导致泄漏,有时会破坏功能(如果活动实例不能给出上下文,在完成或销毁的情况下)如果不传递活动上下文,可能会导致泄漏,或者有时会破坏功能(如果活动实例不能给出上下文,在完成或销毁的情况下)