全志Android设备增加Usb host ADK 功能

全志Android设备增加Usb host ADK 功能

Usb Host ADK是指不采用USB驱动,直接用java与设备编程的
这样让Android 可以无需修改内核和驱动情况下方便与各种USB外设通讯。全志的CPU的资料都是公开的,因此我们在上面开发很多应用。但是发现无法使用usb host 接口。

一.测试

可以简单下载USB Device info 来测试
https://play.google.com/store/apps/details?id=aws.apps.usbDeviceEnumerator

如果用otg 插入一些USB设备,能扫描到信息,就表示adk正常,这是一个开源项目,有兴趣可以下载源码编译运行
https://github.com/alt236/USB-Device-Info---Android

二.解决问题

经过查看发现缺少两个adk所需文件,这两个文件可以直接从Android虚拟机或一般rom升级包抽取,放入设备即可
/system/framework/com.android.future.usb.accessory.jar
/system/etc/permissions/android.hardware.usb.accessory.xml

安装这一些文件需要root权限,全志都是root掉的。

需要安装adb工具,可用如下指令来安装

 adb shell mount -o rw,remount /system #将/system变为可写
 adb  push com.android.future.usb.accessory.jar /system/framework/ #从PC上拷入设备/system目录下 

 adb push android.hardware.usb.accessory.xml /system/etc/permissions/

 adb shell chmod 644 /system/framework/com.android.future.usb.accessory.jar #与其它文件权限一致

 adb shell chmod 644 /system/etc/permissions/android.hardware.usb.accessory.xml

 adb push tablet_core_hardware.xml /system/etc/permissions/

增加 usb host 权限

实践发现,大部分设备还需要在系统增加usb host 权限。如果是平板,需要修改
/system/etc/permissions/tablet_core_hardware.xml
如果是手机,需要修改
/system/etc/permissions/handheld_core_hardware.xml

检查里面是否有如下权限,如果没有,可以把相应文件取下来加入后重新上传

<feature name="android.hardware.usb.host" />

这里有一个打包好的附件,如果机器上安装adb,可以直接用在windows/linux/mac 运行即可

http://download.csdn.net/detail/work4blue/8131371

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于新闻app的adk代码需要具体的业务逻辑和设计,因此无法提供完整的代码。以下是一些可能涉及到的adk代码: 1. 实现广告的展示和点击事件: ```java AdView adView = findViewById(R.id.adView); adView.setAdListener(new AdListener() { @Override public void onAdLoaded() { // 广告加载成功 } @Override public void onAdFailedToLoad(int errorCode) { // 广告加载失败 } @Override public void onAdClicked() { // 广告被点击 } }); AdRequest adRequest = new AdRequest.Builder().build(); adView.loadAd(adRequest); ``` 2. 在列表中展示广告: ```java private static final int ITEM_TYPE_NEWS = 0; private static final int ITEM_TYPE_AD = 1; private List<Object> mDataList; @Override public int getItemViewType(int position) { if (mDataList.get(position) instanceof News) { return ITEM_TYPE_NEWS; } else { return ITEM_TYPE_AD; } } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == ITEM_TYPE_NEWS) { // 创建新闻ViewHolder } else { // 创建广告ViewHolder } } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (holder instanceof NewsViewHolder) { NewsViewHolder newsViewHolder = (NewsViewHolder) holder; News news = (News) mDataList.get(position); // 绑定新闻数据 } else { AdViewHolder adViewHolder = (AdViewHolder) holder; // 绑定广告数据 } } @Override public int getItemCount() { return mDataList.size(); } ``` 3. 在文章详情页展示插屏广告: ```java InterstitialAd interstitialAd = new InterstitialAd(this); interstitialAd.setAdUnitId("your_ad_unit_id"); interstitialAd.setAdListener(new AdListener() { @Override public void onAdLoaded() { // 广告加载成功 if (interstitialAd.isLoaded()) { interstitialAd.show(); } } @Override public void onAdFailedToLoad(int errorCode) { // 广告加载失败 } @Override public void onAdClosed() { // 广告关闭 } }); AdRequest adRequest = new AdRequest.Builder().build(); interstitialAd.loadAd(adRequest); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值