如何记录android手机属性?
我想记录用户实验的所有内容。但我也想记录android手机设备id,哪个手机品牌,什么是应用版本。。。像这样的 Firebase Analythics和Appsee就是这样做的。我从哪里开始 编辑:如何记录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
想想看,我将编写一个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如果不传递活动上下文,可能会导致泄漏,有时会破坏功能(如果活动实例不能给出上下文,在完成或销毁的情况下)如果不传递活动上下文,可能会导致泄漏,或者有时会破坏功能(如果活动实例不能给出上下文,在完成或销毁的情况下)