`
jiav_net
  • 浏览: 106026 次
文章分类
社区版块
存档分类
最新评论

806

 
阅读更多
1.RelativeLayout有一点需要注意,因为它内部是通过多个View之间的关系而确定的框架,那么当其中某一个View因为某些需要调用GONE 来完全隐藏掉后,会影响与其相关联的Views。Android为我们提供了一个属性 alignWithParentIfMissing 用于解决类似问题,当某一个View无法找到与其相关联 的Views后将依据alignWithParentIfMissing 的设定判断是否与父级View对齐。

        String srvcName = Context.TELEPHONY_SERVICE;
        TelephonyManager telephonyManager = (TelephonyManager)getSystemService(srvcName);
              
        String phoneType = "Phone Type: " + telephonyManager.getPhoneType();
        
        String deviceID = "Device ID: " + telephonyManager.getDeviceId();
        
        String phoneNumber = "Phone Number: " + telephonyManager.getLine1Number();
        
        String networkContry = "Network Country: " + telephonyManager.getNetworkCountryIso();
        
        String networkName = "Network Name: " + telephonyManager.getNetworkOperatorName();
        
        String networkType = "Network type: " + telephonyManager.getNetworkType();
        
        String simCountry = "SIM Country: " + telephonyManager.getSimCountryIso();
        
        String simName = "SIM Name: " + telephonyManager.getSimOperatorName();
        
        String simNumber = "SIM Number: " + telephonyManager.getSimSerialNumber();
 
所有的设备都可以返回一个 TelephonyManager.getDeviceId()所有的GSM设备 (测试设备都装载有SIM卡) 可以返回一个TelephonyManager.getSimSerialNumber()所有的CDMA 设备对于 getSimSerialNumber() 却返回一个空值!所有添加有谷歌账户的设备可以返回一个 ANDROID_ID所有的CDMA设备对于 ANDROID_ID 和 TelephonyManager.getDeviceId() 返回相同的值(只要在设置时添加了谷歌账户)
   tmDevice = "" + tm.getDeviceId();
   tmSerial = "" + tm.getSimSerialNumber();
   androidId = ""
     + android.provider.Settings.Secure.getString(context
       .getContentResolver(),
       android.provider.Settings.Secure.ANDROID_ID);

   UUID deviceUuid = new UUID(androidId.hashCode(), ((long) tmDevice
     .hashCode() << 32)
     | tmSerial.hashCode());
   deviceId = deviceUuid.toString();

 

如果你想得到设备的唯一序号, TelephonyManager.getDeviceId() 就足够了。但很明显暴露了DeviceID会使一些用户不满,所以最好把这些id加密了。实际上加密后的序号仍然可以唯一的识别该设备,并且不会明显的暴露用户的特定设备,例如,使用 String.hashCode() ,结合UUID




从Android 2.3开始提供了一个新的类StrictMode,可以帮助开发者改进他们的Android应用,StrictMode可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者使其改进程序,使主线程处理UI和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞,导致ANR窗口的发生。

下面简要说明下Android 2.3新特性StrictMode限制模式的工作方式,见下面的代码:

publicvoid onCreate() {
if (DEVELOPER_MODE) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork() // 这里可以替换为detectAll() 就包括了磁盘读写和网络I/O
.penaltyLog() //打印logcat,当然也可以定位到dropbox,通过文件保存相应的log
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects() //探测SQLite数据库操作
.penaltyLog() //打印logcat
.penaltyDeath()
.build());
}
super.onCreate();
}
上述代码可以在Application的OnCreate中添加,这样就能在程序启动的最初一刻进行监控了

Android系统的“程序异常退出”,给应用的用户体验造成不良影响。为了捕获应用运行时异常并给出友好提示,便可继承UncaughtExceptionHandler类来处理。通过Thread.setDefaultUncaughtExceptionHandler()方法将异常处理类设置到线程上即可。

异常处理类:

public class ErrorReporter implements Thread.UncaughtExceptionHandler {

	private static Context context;

	public static void installReporter(Context appContext) {

		try {
			Thread.setDefaultUncaughtExceptionHandler(new ErrorReporter());
			context = appContext;
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Override
	public void uncaughtException(Thread thread, Throwable ex) {

		showToast("Sorry. Something went wrong and it's reported. We will fix it soon!");
		ex.printStackTrace();
		android.os.Process.killProcess(android.os.Process.myPid());
		System.exit(10);
	}

	private void showToast(final String message) {
		new Thread() {
			@Override
			public void run() {
				Looper.prepare();
				Toast.makeText(context, message, Toast.LENGTH_LONG).show();
				Looper.loop();
			}
		}.start();
	}
}


绑定异常处理类

ErrorReporter.installReporter(getApplicationContext());
"sdk".equals(Build.PRODUCT) //判断实在虚拟机中运行
isTaskRoot()//判断是不是task中最底层的activity
分享到:
评论

相关推荐

    w806+EMMC工具

    【标题】"w806+EMMC工具" 指的是针对搭载w806芯片平台设备的EMMC(Embedded Multi Media Card)模块进行升级或管理的专用工具。EMMC是一种集成在主板上的存储技术,广泛应用于智能手机、平板电脑等移动设备中,因为...

    中兴u806格机解锁方法

    中兴U806是一款由中兴通讯推出的智能手机,它采用了Android操作系统。在某些情况下,用户可能需要对手机进行格式化或解锁,例如忘记密码、系统卡顿或者想要清除所有数据进行重置。本文将详细介绍如何对中兴U806进行...

    电视盒 apk文件 手机版中兴B806A ADB开启算号工具(电视直播视频)

    电视盒 apk文件 手机版中兴B806A ADB开启算号工具(电视直播视频)电视盒 apk文件 手机版中兴B806A ADB开启算号工具(电视直播视频)电视盒 apk文件 手机版中兴B806A ADB开启算号工具(电视直播视频)电视盒 apk文件...

    SLT 806-2020 水利水电工程水泵基本技术条件

    SLT 806-2020 水利水电工程水泵基本技术条件 SLT 806-2020 水利水电工程水泵基本技术条件是中华人民共和国水利行业标准,发布于20XX年,旨在规范水利水电工程水泵的设计、制造、安装、commissioning和运行等方面的...

    VL805VL806 USB3.0转千兆网硬件参考设计Cadence arregro原理图+PCB+技术手册等资料.zip

    标题中的"VL805VL806 USB3.0转千兆网硬件参考设计Cadence arregro原理图+PCB+技术手册等资料"指的是一个关于如何将USB 3.0接口转换为千兆以太网连接的硬件设计方案。VL805和VL806是该设计中使用的集成电路,它们由VL...

    天语w806驱动

    天语W806是一款经典的安卓智能手机,由国内知名手机制造商天语公司生产。这款设备在当时因其良好的性价比和相对出色的硬件配置受到了不少用户的青睐。然而,为了使天语W806能够与电脑进行正常的数据同步、软件安装...

    DB11T 806-2022 地面辐射供暖技术规范

    DB11T 806-2022 地面辐射供暖技术规范

    VL805 VL806 PCIE转USB3.0 PCB图.rar

    VL805 VL806 PCIE转USB3.0 PCB图,验证可用;

    W806刷机工具

    标题中的“W806刷机工具”指的是针对天语云智能手机W806的一款专门用于更新或恢复手机操作系统的软件。刷机是Android用户常用的一种术语,它涉及到替换手机原有的系统固件,通常是为了升级、降级或者安装第三方定制...

    Broadmobi BM806U Series User AT Commands V1.0.1 .pdf

    bm806u at指令

    EM78P806A技术资料

    EM78P806A是一款8位精简指令集微处理器,采用CMOS工艺,具有低功耗、高速度的特点。它的内部集成了看门狗定时器(WDT)、RAM、ROM、可编程实时时钟/计数器、内部中断控制、节电模式、LCD驱动器、FSK解码器、DTMF接收...

    IPQ806x Crypto Offload.docx

    IPQ806x Crypto Offload IPQ806x Crypto Offload是基于高通IPQ806X芯片的加密offload解决方案,旨在提高加密效率。该解决方案通过硬件引擎来加速加密和解密操作,减少主机软件的计算负载。 1.1 硬件 IPQ806x ...

    W806+刷机教程.doc

    W806+刷机教程 概述: W806+刷机教程是一个详细的刷机指南,旨在帮助用户刷入第三方Recovery,获取更多的系统操作支持,包括安装任意指定的ROM包、备份还原等功能。本教程将指导用户从下载 Recovery 和刷机包到刷入...

    2018-2020年中国海洋大学806普通物理考研真题

    【标题】"2018-2020年中国海洋大学806普通物理考研真题"揭示了这个压缩包包含的是中国海洋大学在2018至2020年间,针对806普通物理课程的研究生入学考试试题。这三年的真题集对于备考该学校物理专业研究生的学生来说...

    PS806线性直流电源使用手册.rar

    **PS806线性直流电源使用手册** PS806线性直流电源是一款专业级的电源设备,常用于实验室、研究机构以及电子设备的测试和维修。它以线性稳压技术为核心,提供稳定、精确的直流电压输出,确保供电质量。线性电源与...

    天语W806recovery

    标题中的“天语W806 recovery”指的是天语W806手机的恢复模式固件,这在安卓系统中是一个至关重要的组成部分。在安卓设备上,recovery是一种特殊的系统模式,用户可以在其中执行备份、恢复、安装更新或清除数据等...

    W801和W806单片机的FLASH烧写算法

    W801和W806单片机的FLASH烧写算法

    刷recovery工具+原厂内核recovery 天语W806

    天语W806是一款基于Android系统的智能手机,本主题涉及的是如何为这款设备刷入新的Recovery工具以及原厂内核Recovery,以实现更优化的性能和省电效果。 首先,我们要理解什么是Recovery。Recovery是Android系统的一...

    T-REC-G[1].806-200603

    标题"T-REC-G[1].806-200603"和描述中的内容相同,这通常意味着我们正在处理一个技术标准文档,可能是由国际电信联盟(ITU)发布的。"ITUT 806"标签进一步确认了这一点,因为"ITUT"是ITU Telecommunication ...

    2017-2021年重庆邮电大学806材料力学考研真题

    该资源为2017-2021年重庆邮电大学806材料力学考研真题,资源高清无水印哦!

Global site tag (gtag.js) - Google Analytics