当前位置:   article > 正文

全志问题解决方法_有关详细信息, 请使用 -xlint:deprecation 重新编译。

有关详细信息, 请使用 -xlint:deprecation 重新编译。

1,          android上如何增加一个PC可见的盘符

1)在sysconfig1.fex中的luns中设置PC可见的盘数:luns=4
2)在init.rc中建立一个目录
:mkdir /mnt/inet 0000 systemsystem
3).在vold.fstab中增加mounts的方法
:dev_mount inet /mnt/inetauto    /devices/virtual/block/nandh
4).更改config_evb.mk中
:
PRODUCT_PROPERTY_OVERRIDES+= \
       ro.additionalmounts=/mnt/extern_sd;/mnt/usbhost1;/mnt/inet \
       ro.additionalshares=/mnt/extern_sd;/mnt/usbhost1;/mnt/inet \
        ro.udisk.lable=crane-evb

5).更改frameworks/base/services/java/com/android/server/MountService.java中增加头文件:
import java.io.File;及在
for (String path: volumesToShare) {
后增加:

  String tmp ="/mnt/inet";
  if(path.equals(tmp))
  {
        File f=newFile("/mnt/sdcard/mpgio.sys");
        if(!f.exists()){
         Slog.e(TAG, "not mount nandh");
         return ;
       }
     Slog.e(TAG, "mount nandhsuccess");
}

2Android4.0.1显示在切换中有时会出现红色边框

看是否有配置以下属性:
persist.sys.strictmode.visual
此属性值设成0

3播放电影字幕和菜单重叠

播放外带字幕电影,播放电影且已有字幕出现在屏幕上时触摸屏幕调出子菜单,字幕和菜单重叠,下一条字幕出现时则恢复正常。

修改 Gallery2\src\com\android\gallery3d\app\MediaController.java 在initControllerView  函数最后加 mUpSubPos += 10; 即可

 

4,卡启动时,如何识别到nand并对其进行操作

关于要在卡启动识别到nand,有两种情况:

1. nand上已经有分区;

2. nand是裸片;

 第一种情况下卡启动时nand驱动能够初始化成功,用户可以通过mount命令挂载nand的分区;

 第二种情况下要先给nand一个虚拟的mbr,使得启动时nand能够初始化成功,

可以通过修改nand驱动的源码达到这一目的。

A10平台修改linux-3.0/drivers/block/sun4i_nand/nfd/mbr.c

A1X平台修改linux-3.0/drivers/block/sun5i_nand/nfd/mbr.c

具体改动如下:

int mbr2disks(struct nand_disk* disk_array)

{

         int part_cnt = 0;

         int part_index;

#if 0

         if(_get_mbr()){

                   printk("get mbr error\n" );

                   return part_cnt;

         }

         part_index = 0;

 

         for(part_cnt = 0; part_cnt<MAX_PART_COUNT; part_cnt++)

                   part_secur[part_index] = 0;       

         //查找出所有的LINUX盘符

         for(part_cnt = 0; part_cnt < mbr->PartCount && part_cnt < MAX_PART_COUNT; part_cnt++)

         {

             //if((mbr->array[part_cnt].user_type == 2) || (mbr->array[part_cnt].user_type == 0))

             {

                            PRINT("The %d disk name = %s, class name = %s, disk size = %d\n", part_index, mbr->array[part_cnt].name,

                             mbr->array[part_cnt].classname, mbr->array[part_cnt].lenlo);

                            disk_array[part_index].offset = mbr->array[part_cnt].addrlo;

                            disk_array[part_index].size = mbr->array[part_cnt].lenlo;

                            part_secur[part_index] = mbr->array[part_cnt].user_type;

                            part_index ++;

             }

         }

         disk_array[part_index - 1].size = DiskSize - mbr->array[mbr->PartCount - 1].addrlo;

         _free_mbr();

         PRINT("The %d disk size = %lu\n", part_index - 1, disk_array[part_index - 1].size);

         PRINT("part total count = %d\n", part_index);

#else

         part_index = 1;

         disk_array[0].offset = 0;

         disk_array[0].size = DiskSize;

         part_secur[0] = 0;

#endif

         return part_index;

}

 

红色部分为改动的内容,旧版的SDK需要做适当的修改才可通过编译,

去掉:part_secur[0] = 0;

 

 

6手机 拨号 apk拨号应用被隐藏

安装了contacts.apk和phone.apk,依然在launcher看不到拨号

frameworks/base/core/res/res/values/config.xml:581:    <bool name="config_voice_capable">true</bool>

该属性为false时,会隐藏拨号,请注意自己的项目中是否覆盖了该属性

 

7如何修改USB的Pid vid

根据项目需求,我们现需要修改平台的vendor Id & product Id
在sys_config1.fex里面,有如下字段:

;--------------------------------

;---       USB Device

;--------------------------------

[usb_feature]

vendor_id                = 0x18D1

mass_storage_id          = 0x0001

adb_id                   = 0x0002

 

manufacturer_name        = "USB Developer"

product_name             = "Android"

serial_number            = "20080411"

 

[msc_feature]

vendor_name              = "USB 2.0"

product_name             = "USB Flash Driver"

release                  = 100

luns                     = 2

相信vendor_id便是vid,改变此键值,即可达到改变vid的目的,那pid是怎么修改呢?

android的设置 -> 存储 -> USB计算机连接,有三个选项,分别是:媒体设备(MTP)、
相机(PTP)、USB大容量存储。我分别用这三种模式与电脑连接,得到的pid & vid信息
如下:
媒体设备(MTP) :     vid = 18D1 ;    pid = 0007
相机(PTP)         :     vid = 18D1 ;    pid = 0009
USB大容量存储     :     vid = 18D1 ;    pid = 0003

请问pid根据什么规则变化呢?我该如何配置相应的值?

请参见sys_config1.fex和文件 init.sun5i.usb.rc

媒体设备(MTP     vid = 18D1     pid = 0007

对应:

on property:sys.usb.config=mtp,adb

    write /sys/class/android_usb/android0/enable 0

    write /sys/class/android_usb/android0/idVendor   18d1

    write /sys/class/android_usb/android0/idProduct   0007

    write /sys/class/android_usb/android0/functions   $sys.usb.config

    write /sys/class/android_usb/android0/enable 1

    start adbd

    setprop sys.usb.state $sys.usb.config

其它类似

8外部SD卡无法写入

只能读,程序无法写入
Androidmanifest
权限声明内容:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">

        <group gid="sdcard_rw"/>

    </uses-permission>  

    <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" >

        <group gid="media_rw"/>

    </uses-permission>

 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS">

</uses-permission> 

 

看到sd目录和extsd目录的权限相同,都是system,但用户组不一样
sd是sdcard_rw,外部sd是media_rw

可以简单处理,修改一下extsd的用户组到sdcard_rw
修改system/vold/Volume.cpp  542

if (primaryStorage) {

            // Special case the primary SD card.
            // For this we grant write access to the SDCARD_RW group.
            gid = AID_SDCARD_RW;
        } else {
            // For secondary external storage we keep things locked up.
            gid = AID_MEDIA_RW;
        }



改为

if (1) {

            // Special case the primary SD card.
            // For this we grant write access to the SDCARD_RW group.
            gid = AID_SDCARD_RW;
        } else {
            // For secondary external storage we keep things locked up.
            gid = AID_MEDIA_RW;
        }

9高清播放器删除最后一张图片时,图片再无法移动问题

 Gallery2\src\com\android\gallery3d\ui\PhotoView.java 

public void startSlideInAnimation(int direction) {

         ...
        mTransitionMode = direction; 改成  mTransitionMode = TRANS_NONE;
        

}

10A10v1.4版本没有声音

配置文件没有加pa_dev的权限导致:
比如crane-evb-v12r:对应目录android4.0.4\device\softwinner\crane-evb-v12r\ueventd.sun4i.rc
里面加pa_dev的权限:
/dev/pa_dev               0777   system     system

 

11阿拉伯文下高清播放器不能搜索到.avi格式的媒体文件

由于阿拉伯文下 .avi后缀的视频,后缀名被转码后识别不了,需要修改以下地方。
frameworks\base\media\java\android\media\MediaFile.java 

    public static MediaFileType getFileType(String path) {

        int lastDot = path.lastIndexOf(".");

        if (lastDot < 0)

            return null;

        return sFileTypeMap.get(path.substring(lastDot + 1).toUpperCase(Locale.ENGLISH));

    }

    public static MediaFileType getFileType(String path) {

        int lastDot = path.lastIndexOf(".");

        if (lastDot < 0)

            return null;

        return sFileTypeMap.get(path.substring(lastDot + 1).toUpperCase(Locale.ENGLISH));

    }

public static MediaFileType getFileType(String path) {
     int lastDot = path.lastIndexOf(".");
     if (lastDot < 0)  
         return null;
      return sFileTypeMap.get(path.substring(lastDot + 1).toUpperCase(Locale.ENGLISH));
}

12字体设置为大、超大时,竖屏在解锁界面,解锁的图标显示不全

800x600,lcd_denisty 160

frameworks/base/core/res/res/layout-sw600dp/keyguard_screen_tab_unlock.xml
适当加大72行的android:layout_weight="1"
这样解锁部分的面积会增加,解决这个问题
其他分辨率需要修改其他layout文件夹下的keyguard_screen_tab_unlock.xml

 

13,设置-安全-屏幕锁定-图案界面,在坚屏时不显示取消/下一步

800x600,lcd_denisty 160

packages/apps/Settings/res/layout-sw600dp/choose_lock_pattern_tutorial.xml
把两个layout_marginTop都适当改小

 

14音效里的NormalFlat功能反

frameworks/base/media/libeffects/lvm/wrapper/Bundle/EffectBundle.h
gEqualizerPresets
数组,名字可以随意修改

 

14,动态壁纸 线性光幕效果有黑块

 将壁纸设为动态壁纸中的“线性光幕效果”时,在主界面旋转屏幕时未显示完整,即往边上拉存在黑块问题。

修改:
android\packages\wallpapers\Basic\src\com\android\wallpaper\nexus\NexusRS.java

    @Override
    public void setOffset(float xOffset, float yOffset, int xPixels, int yPixels) {
        //mXOffset = xOffset; 
        //mScript.set_gXOffset(xOffset);
    }

15android4.0量产时用户区不能格式化

版本为v1.0,量产配置已经加入erase_flag=1,仍然不能格式化

16如何修改setting里面各字体对应的大小

感觉setting里面字体大小选择的变化幅度太大,希望小不要太小,特大不要太大,每级变化的幅度缩小点该如何修改

android4.0\packages\apps\Settings\res\values\arrays.xml文件里

<string-array name="entryvalues_font_size" translatable="false">
        <item>
0.85</item>
        <item>
1.0</item>
        <item>
1.15</item>
        <item>
1.30</item>
    </string-array>

默认是0.15的梯度改成合适的梯度如

<string-array name="entryvalues_font_size" translatable="false">
        <item>
0.90</item>
        <item>
1.0</item>
        <item>
1.10</item>
        <item>
1.20</item>
    </string-array>

17user模式下gsensor不可用

不能编译成user模式只能ENG模式,user模式下Gsensor不能旋转

mma7660出现过这种情况,原因是sensors.exDroid.so编译出来以后没有安装到/system/lib/hw下可以在build/target/product/generic_no_telephony.mk中加入 sensors.exDroid,再重新编译即可

18浏览器退出和浏览器为android模式时看在线视频卡

A10
1
:在浏览时有时偶尔会退出
2
:浏览器用android模式,看在线视频十几分钟左右后会卡,但用ipad模式不会卡

1.              需要具体分析问题,我们其它客户案上浏览正常
2
android模式采用的flash格式播放,而ipad采用的html5flash由于自身格式和片源分割的关系,在线视频有机率产生不同步或卡顿问题。该问题由flash自身引起,这也是为何flash会逐渐被html5取代的一个方面

193g dongle在特定的区域死机

 dongle在信号好的地方可以正常使用,在信号差的地方,连接慢,且使用几分钟后会出现蓝屏、黑屏、死机等现象

3G dongle属于射频产品,对USB线的要求比较高,特别是在信号不强的情况下,使用时使用带有屏蔽处理较好的USB OTG线即可。

20android4.0.3camera延时录制是什么功能?

该功能主要是拍摄车水马龙、行云流水等用的;假设录制的正常帧率是15fps,如果设置成延时1s,则代表1s会录制1帧,如果想实际录制的视频有1s的内容(15帧),则实际需要录制15s;一些客户反馈,录制一段视频后,实际播放的时间很短,就是因为这个原因

21android4.0中如何自动弹出USB

修改 frameworks\base\packages\SystemUI\src\com\android\systemui\usb\StorageNotification.java

 //Intent intent = new Intent();

//            Intent intent = new Intent();

//            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_stop_notification_title,

//                    com.android.internal.R.string.usb_storage_stop_notification_message,

//                    com.android.internal.R.drawable.stat_sys_warning, false, true, pi) ;

//intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);
 //PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);
 //setUsbStorageNotification(
 //           com.android.internal.R.string.usb_storage_stop_notification_title,
 //           com.android.internal.R.string.usb_storage_stop_notification_message,
//            com.android.internal.R.drawable.stat_sys_warning, false, true, pi);
         ...
}


void updateUsbMassStorageNotification(boolean available) {
      StorageManager mStorageManager = null;
     if (available)
     {
         if(mContext != null)
         {
              mStorageManager = (StorageManager) mContext.getSystemService(Context.STORAGE_SERVICE);
         }
         else
         {
              Slog.w(TAG, "mContext is null ,getSystemService error !");
         }

         //            Intent intent = new Intent();
         //            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);
         //            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         //            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);
         //            setUsbStorageNotification(
         //                    com.android.internal.R.string.usb_storage_notification_title,
         //                    com.android.internal.R.string.usb_storage_notification_message,
         //                    com.android.internal.R.drawable.stat_sys_data_usb,
         //                    false, true, pi);

      if(mStorageManager != null)
            {
         mStorageManager.enableUsbMassStorage();
       } 
    

 //            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_notification_title,

//                    com.android.internal.R.string.usb_storage_notification_message,

//                    com.android.internal.R.drawable.stat_sys_data_usb,

//                    false, true, pi);

//            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_notification_title,

//                    com.android.internal.R.string.usb_storage_notification_message,

//                    com.android.internal.R.drawable.stat_sys_data_usb,

//                    false, true, pi);

//            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_notification_title,

//                    com.android.internal.R.string.usb_storage_notification_message,

//                    com.android.internal.R.drawable.stat_sys_data_usb,

//                    false, true, pi);

//            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_notification_title,

//                    com.android.internal.R.string.usb_storage_notification_message,

//                    com.android.internal.R.drawable.stat_sys_data_usb,

//                    false, true, pi);

//            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_notification_title,

//                    com.android.internal.R.string.usb_storage_notification_message,

//                    com.android.internal.R.drawable.stat_sys_data_usb,

//                    false, true, pi);

//            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_notification_title,

//                    com.android.internal.R.string.usb_storage_notification_message,

//                    com.android.internal.R.drawable.stat_sys_data_usb,

//                    false, true, pi)

     }
else if(!mUmsAvailable || !atLeastOneDeviceMounted())
     {
            setUsbStorageNotification(0, 0, 0, false, false, null);
            if(mStorageManager != null)
            {
              mStorageManager.disableUsbMassStorage();
            }
        }

    
}

22电池提示无法获取电池使用数据

设置--电池--,里面提示无法获取电池使用数据

android4.0(1.2版本之后,之前没有此功能)
在device\softwinner\crane-xxx\overlay\frameworks\base\core\res\res\xml  目录下, 增加 power_profile.xml
power_profile.xml 内容如下

<?xml version="1.0" encoding="utf-8"?>

<!--

**

** Copyright 2009, The Android Open Source Project

**

** Licensed under the Apache License, Version 2.0 (the "License")

** you may not use this file except in compliance with the License.

** You may obtain a copy of the License at

**

**     http://www.apache.org/licenses/LICENSE-2.0

**

** Unless required by applicable law or agreed to in writing, software

** distributed under the License is distributed on an "AS IS" BASIS,

** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

** See the License for the specific language governing permissions and

** limitations under the License.

*/

-->

 

<device name="Android">

     <item name="none">0</item>

     <item name="screen.on">55</item>

     <item name="bluetooth.active">142</item>

     <item name="bluetooth.on">1</item>

     <item name="bluetooth.at">35690</item>

     <item name="screen.full">115</item>

     <item name="wifi.on">4</item>

     <item name="wifi.active">130</item>

     <item name="wifi.scan">104</item>

     <item name="dsp.audio">75</item>

     <item name="dsp.video">75</item>

     <item name="radio.active">300</item>

     <item name="gps.on">170</item>

     <item name="radio.scanning">70</item>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/45771
推荐阅读
相关标签
  

闽ICP备14008679号