ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何获得在操作系统中注册的Android应用程序

2019-05-28 22:20:56  阅读:356  来源: 互联网

标签:android android-service nfc apdu hce


我正在搜索Android源代码,因为我想了解何时解析应用程序的AndroidManifest.xml.

即如果某个应用注册了NFC服务

<service
        android:name=".demo.service.ApduService"
        android:exported="true"
        android:permission="android.permission.BIND_NFC_SERVICE">

        <intent-filter>
            <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE" />
        </intent-filter>

        <meta-data
            android:name="android.nfc.cardemulation.host_apdu_service"
            android:resource="@xml/apduservice" />
    </service>

使用以下apduservice.xml

<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/servicedesc"
android:requireDeviceUnlock="false" >

<aid-group
    android:category="other"
    android:description="@string/aiddescription" >
    <aid-filter android:name="23498234098234098" />
</aid-group>

Android操作系统何时何地读取辅助过滤器并注册ID?

(我知道它将存储在哪里,以及如何存储,但我无法找到实际ID被提取并转发到NFC堆栈的事件)

解决方法:

主机和脱离主机CE服务列表何时更新?

无论何时添加,更改,更新,删除应用程序包等,都会收集和更新有关主机和脱离主机APDU服务(基于HCE和SE的CE)的信息.这由com.android.nfc.cardemulation.RegisteredServicesCache中的广播接收器处理.广播接收器是对以下事件敏感:

> ACTION_PACKAGE_ADDED
> ACTION_PACKAGE_CHANGED
> ACTION_PACKAGE_REMOVED
> ACTION_PACKAGE_REPLACED
> ACTION_PACKAGE_FIRST_LAUNCH
> ACTION_PACKAGE_RESTARTED
> ACTION_EXTERNAL_APPLICATIONS_AVAILABLE
> ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE

此外,每次启用NFC服务时都会更新AID.

生成的服务列表如何以及在何处?

在更新期间,系统是queried,用于过滤android.nfc.cardemulation.action.HOST_APDU_SERVICE和android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE的意图操作的服务列表.对于每个服务,检查应用程序是否拥有使用NFC的权限以及服务是否需要BIND_NFC_SERVICE权限.如果是这种情况,则考虑将服务用于卡仿真.

提取AID列表的方式和位置?

然后,主机和脱离主机APDU服务存储在andoid.nfc.cardemulation.ApduServiceInfo对象的列表中.该类processesconstructor中< service>中指定的元数据.标签和extracts AID列表.

使用新列表更新卡仿真系统的方式和位置?

在编译列表之后,将其传递到com.android.nfc.cardemulation.RegisteredAidCache.在那里,服务和AID列表用于编译主机上和主机外AID路由的路由表.

标签:android,android-service,nfc,apdu,hce
来源: https://codeday.me/bug/20190528/1173998.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有