Android常见问题收集

来源:互联网 发布:ubuntu卸载virtualbox 编辑:程序博客网 时间:2024/06/08 06:05
 1. 屏蔽长按弹出菜单中的输入法:

    重载Activity的onAttachedToWindow方法,如下:

    @Override

    public void onAttachedToWindow()

    {

        this.getWindow().addFlag(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

    }

2. 手机启动读取卡地mcc后获取时区不成功:

     将mcctable.c中的数组TZ_STRINGS中的Asia/Beijing改为Asia/Shanghai即可

3. VPN连接失败问题.

    因为Android默认的驱动配置是不包含PPP和L2TP的,导致PPTP和L2TP连接服务器的时候出现Socket() Address family not support by protocol,驱动配置如下:

   1>.PPP配置

    Device Driver -->

      Networking device support -->

        <*>  PPP(point to point protocol)support

        [ ]     PPP multilink support (EXPERIMENTAL)

        [ ]     PPP filtering

        <*>     PPP support for async serial ports

        <*>     PPP support for sync tty ports

        <*>     PPP Deflate compression

        <*>     PPP BSD-Compress compression

        <*>     PPP MPPE compression (encrytion) (EXPERIMENTAL)

        <*>     PPP over Ethernet(EXPERIMENTAL)

        <*>     PPP over L2TP (EXPERIMENTAL)

        <*>     PPP on L2TP Access Concentrator

        <*>     PPP on PPTP Network Server

    2>.L2TP配置

     Networking Support -->

     Networking Options -->

        <*>  Layer Two Tunneling Protocol (L2TP) --> 进入子目录

           --- Layer Two Tunneling Protocol (L2TP)

           <*>    L2TP debugfs support

           [*]    L2TPv3 support (EXPERIMENTAL)

           <*>      L2TP IP encapsulation for L2TPv3

           <*>      L2TP ethernet pseudowire support for L2TP

      <*>  Phone Protocols Family

4. 时间自动更新

    Android自动更新时间使用的NITZ协议,这需要运营商支持,中国移动的GSM就没有该服务。因此在程序中可以通过SNTP协议,从网站获取时间,方法如下:

    在GsmServiceStateTracker.c(CdmaServiceStateTracker.c一样处理)的revertToNitz函数中增加以下代码:

  int tryCount = 5;
  SntpClient client = new SntpClient();
  for(int i = 0; i < tryCount; i++)
  {
        if(client.requestTime("", 10000))
        {
            long catchedNtp = client.getNtpTime();
            long catchedNtpTimestamp = SystemClock.elapsedRealtime();
            setAndBroadcastNetworkSetTime(catchedNtp + (catchedNtpTimestamp - client.getNtpTimeReference()));
            return;
        }

    }

5. Android自带Google输入法不能翻页问题:

    Google的拼音输入法在候选字中没有更新下一屏,需要修改candidateview.cpp中的第405行,将mPageNo = 0这一行注释即可.该文件所在录:packages/inputmethod/pinyinime

 

6. 加快配置menuconfig的方法:

    因使用make kernelconfig需要较长时间,可按以下步骤(在kernel目录下):
       1.export ARCH=arm
       2.make msm7630_XXXX_defconfig
       3.make menuconfig
       4.配置好后将kernel目录下的.config改名为:
               msm7630_XXXX_defconfig,copy到
              kernel\arch\arm\configs目录下替换同名文件
       5.make mrproper

7. 修改Modem生成rawprogram0.xml和patch0.xml:
      注释掉./linux_build BUILD_ID=${BUILD_ID} BUILD_VER=${BUILD_VER} FUZHI_TEAM=$1 CONFIG_FUZHI_BOARD=${CONFIG_FUZHI_BOARD}
      if [ "$1" == "integration" ];then
      #if [ "$1" == "telephone" ];then

8. 配置程序在开机时自动启动,需要在init.rc文件中增加配置脚本,该文件在system/core/rootdir目录下

9. 更新时区Bug:在插入SIM卡后,Android程序会自动根据读取的卡的MCC信息设置当前时区,但是在对于设置的zoneId定义有误,具体见mcctable.c。
     只要将该文件中的数组TZ_STRINGS中的Asia/Beijing改为Asia/Shanghai即可

原创粉丝点击