Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >安卓系统上的Pkpass

安卓系统上的Pkpass
EN

Stack Overflow用户
提问于 2013-01-28 02:26:54
回答 1查看 29.9K关注 0票数 16

有一个安卓应用程序Passwallet可以解释苹果应用程序Passbook (https://play.google.com/store/apps/details?id=com.attidomobile.passwallet)的pkpass文件

我在想怎么读pkpass文件。

Pkpass文件似乎是压缩文件,其中包含json文件中的所有信息。pkpass文件有默认结构吗?如果是这样,那又是什么呢?将其导入android应用程序的好方法是什么?

对于那些想知道如何读取pkpass文件内容的人,请参考以下代码:

我使用pkpass文件的意图筛选器设置了此活动。

代码语言:javascript
运行
AI代码解释
复制
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />

            <data
                android:mimeType="application/vnd-com.apple.pkpass"
                android:scheme="content" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />

            <data
                android:mimeType="application/vnd.apple.pkpass"
                android:scheme="content" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />

            <data
                android:mimeType="application/vnd-com.apple.pkpass"
                android:scheme="file" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />

            <data
                android:mimeType="application/vnd.apple.pkpass"
                android:scheme="file" />
        </intent-filter>
代码语言:javascript
运行
AI代码解释
复制
@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
Intent intent = getIntent();
Uri uri = intent.getData();
String scheme = uri.getScheme();

if(ContentResolver.SCHEME_CONTENT.equals(scheme)) {
    try {
        InputStream attachment = getContentResolver().openInputStream(uri);
        handleZipInput(attachment);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}
else {
    String path = uri.getEncodedPath();
    try {
        FileInputStream fis = new FileInputStream(path);
        handleZipInput(fis);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}
}

private void handleZipInput(InputStream in) {
    try {
        ZipInputStream zis = new ZipInputStream(in);
        ZipEntry entry;
        while((entry = zis.getNextEntry()) != null) {
            String filename = entry.getName();
            if(filename.equals("pass.json")) {
                StringBuilder s = new StringBuilder();
                int read = 0;
                byte[] buffer = new byte[1024];
                while((read = zis.read(buffer, 0, 1024)) >= 0)
                    s.append(new String(buffer, 0, read));

                JSONObject pass = new JSONObject(s.toString());
                break;
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-28 02:48:09

您可以从.pkpass下载这里包的完整规范。pass内容存储在一个名为pass.json的JSON文件中。.pkpass包是一个包含pass.json、pass图像、可选地区文件和清单文件的压缩文件。

清单需要用苹果颁发的通行证ID证书进行签名。然而,对于Android或任何其他第三方应用程序,构建pass所需的一切都可以从pass.json和捆绑的图像中读取。

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14559959

复制
相关文章
浅谈安卓系统上的DSU loader
什么是DSU loader? dsu loader即 动态系统更新可以在使用动态分区的安卓设备上,不影响原来系统的同时安装一个副系统,用于体验最新的原生安卓系统(AOSP)(博主评:相比传统刷机模式,
Tianli
2023/03/03
12.9K0
iPhone 上也能用安卓系统了?!
今天看到一个视频,视频里一个人拿着一个 iPhone,但是里面运行的却是安卓系统,还是三星的 ROM。
崔庆才
2021/04/26
1.3K0
iPhone 上也能用安卓系统了?!
安卓系统框架介绍(安卓常用框架)
——源码地址1: https://android.googlesource.com/
全栈程序员站长
2022/07/30
8.8K0
安卓系统框架介绍(安卓常用框架)
安卓系统usb调试在哪_安卓手机的usb调试
Android手机USB调试在哪?安卓手机如何打开USB调试模式?如果我们要将安卓手机连接到电脑上,从而传输文件、下载应用或ROOT等,都需要打开手机的USB调试模式。安卓系统的版本有很多,它们的打开方法也各不相同,下面给大家介绍各版本安卓手机打开USB调试模式的方法。
全栈程序员站长
2022/09/30
3.9K0
appinventor安卓壁纸设置(上)
初步功能需求 打开安卓app,然后会看到一张内置好的图片,点击下方的设置壁纸,实现让这个图片成为壁纸的功能,实现方法调用安卓系统内置的壁纸设置工具。
泽泽社长
2023/04/17
8990
appinventor安卓壁纸设置(上)
鸿蒙系统与安卓系统的区别
华为鸿蒙已经发布快一年了,但是经常还有小伙伴说,鸿蒙不就是安卓系统套个壳么?类似小米的米UI和华为自有的EMUI。 我们不可否认鸿蒙2.0系统跟安卓的界面确实很相似,但就因此判定鸿蒙系统是安卓换皮了吗? 都知道鸿蒙系统跟安卓一样,采用的是AOSP 开源代码,而安卓自身超过80%的代码都来自于开源项目,谁也不能说谁在换皮吧? 长期以来,谷歌Android和苹果iOS系统占据了全球移动端操作系统的绝大多数市场份额,除了苹果的IOS以外,其他手机基本使用的就是安卓系统,当然,鸿蒙推出以后就三分天下啦。 对于很多
老九君
2022/04/29
5.5K0
鸿蒙系统与安卓系统的区别
安卓app上架流程
上传APP的时候,遇到了问题,一直卡在Authenticating with the iTunes store提示这里,
爱学iOS的小麦子
2023/01/04
5130
WebRTC 如何在安卓系统上采集视频数据
WebRTC 作为一个开源的实时音视频通讯方案,经过多年的发展基本上已经支持了所有的常用终端,比如 windows、mac、Android、iOS等。我们都知道音视频通讯的前提是采集本地的音频和视频数据信息。今天,我们就来先了解一下 WebRTC 在安卓端是如何采集视频信号的。
liuzhen007
2022/02/23
2.7K0
WebRTC 如何在安卓系统上采集视频数据
安卓再现系统广播高危漏洞,影响99.9%安卓手机
近日,有博客披露安卓系统存在安卓系统广播漏洞,99.9%的安卓手机将面临安全威胁。恶意程序利用该漏洞,可伪造任意内容的手机短信,及致手机死机,甚至可将手机恢复出厂设置(所有数据将被擦除)。该漏洞目前影响5.0版本以下99.9%的安卓系统手机。 安全专家研究发现,谷歌在刚刚发布的安卓系统5.0(Lolipop)中悄悄修复了一项高危漏洞,“利用该漏洞,可以发送任意广播:不仅可以发送系统保护级别的广播、还可以无视receiver的android:exported=false、android:permisson
安恒信息
2018/04/10
3.3K0
安卓再现系统广播高危漏洞,影响99.9%安卓手机
[STF 手机设备管理平台] 连接其它操作系统上的安卓设备实操介绍
看到之前曾有人发贴,贴名【stf 连接各操作系统上安卓设备的操作方法分享】,介绍了一下,虽然说方法和理论都有,但下述评论中还是有很多人不知如何操作,特别是不知道stf provider命令如何使用,特此,提供具体的解决方法,当然本人注重结果导向,所以下述方法中,重点都是通过截图方法来展开,不涉及理论上的过多解释。
测试开发技术
2020/01/17
2.2K0
[STF 手机设备管理平台] 连接其它操作系统上的安卓设备实操介绍
安卓仓库管理系统源码
大等于jdk1.8,大于mysql5.5,idea(eclipse),Android Studio
淘毕设
2022/07/17
2.3K0
【Rust日报】2021-04-12 谷歌安卓团队拥抱 安卓上的 Rust 开发
过去 18 个月中,安卓团队开始将 Rust 引入到安卓开源项目中, 很快, 一些早期的适配项目就会面世.
MikeLoveRust
2021/04/22
1.1K0
苹果电脑安卓系统连接不上wifi_苹果手机连wifi没网安卓没问题
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说苹果电脑安卓系统连接不上wifi_苹果手机连wifi没网安卓没问题,希望能够帮助大家进步!!!
Java架构师必看
2022/08/22
3.4K0
安卓基础干货(七):安卓广播的学习
android应用程序里面的电台:系统内置的一个服务,会把事件(电量不足、电量充满、开机启动完成)作为一个广播消息发送其他的接收者;
緣來
2018/09/18
4.1K0
安卓基础干货(八):安卓进程的学习
接口(interface): 对外开放暴露的功能,但是不会暴露功能实现的细节; 让中间人实现服务接口的目的:只对外暴露接口里面业务逻辑方法,隐藏中间人里面的其他方法;
緣來
2018/09/18
4.1K0
安卓系统签名方法2则
最近一个安卓的项目,本来是使用安卓板4.2的;但由于生产需求将原来的单板集成到整体(显示触屏+安卓)。由于其提供的样板是6.0。整个程序的主功能运行还可以,就是无法写日志和播放本地视频。于是研究一下,发现原来是他们提供的安卓未root导致的。于是跟供应商联系给root文件,谁知这丫的不给,就给了个安卓的系统签名。。好吧,给系统签名就重新编译吧。但过程不是太顺利,花了差不多一天时间进行处理;总算搞掂,现在分享一下成果吧。
谭广健
2020/01/16
1.8K0
harmonyos系统与安卓区别(uAndroid)
这段时间我在寻思着学习一下鸿蒙, 第一是因为在着手做一个自己的开源项目,技术选型的时候想到了鸿蒙; 第二是我个人非常看好鸿蒙系统的未来,清楚明白华为和一些民族企业担负的责任和国人的期待,虽然带着一些民族感情;鸿蒙刚发布的时候自己是非常激动的,但是后来项目太忙一直没有认真的去了解过,这次打算花一部分时间认认真真的去研究学习一下。 于是我开始试探性的去请教身边的大佬们,公司的CTO、中台部门的总监、老东家数十年行业经验的老架构、以及在中科院读研究生的大学老室友、技术圈的网友等等,他们都给出了自己独特的看法,让我从多方面更好的去了解到了大家对鸿蒙的认识,当然期间也发现很多国内开发者对鸿蒙系统嗤之以鼻或者抱着一些不太看好的心态,甚至有人在我的关于鸿蒙开发的博客下评论一些比较难听的话!(当然一千个读者有一千个哈姆雷特,这都是个人自由); 这肯定是一篇遭到唾弃的文章!但这一切都无法磨灭我坚定的信仰:支持国产、支持民族企业、支持每一个为国家富强而努力的同胞! ​
全栈程序员站长
2022/07/29
2.1K0
harmonyos系统与安卓区别(uAndroid)
Windows 11 运行安卓子系统
设置 → 应用 → 可选功能 → 更多 Windows 功能 → 勾选“虚拟机平台” → 确定,或者直接运行optionalfeatures打开Windows功能:
AiDBA宝典
2023/04/26
2.3K0
Windows 11 运行安卓子系统
安卓的日历_公认不卡的安卓手机
代码已上传到github:https://github.com/yannecer/NCalendar 项目主要用到了自定义View,ViewPager,RecyclerView和NestedScrollingParent。
全栈程序员站长
2022/08/03
4.9K0
安卓的日历_公认不卡的安卓手机
安卓 training-使用系统权限
每款 Android 应用都在访问受限的沙盒中运行。如果应用需要使用其沙盒外的资源或信息,则必须请求相应权限。您可以在应用清单中列出相应的权限,声明应用需要此权限。 根据权限的敏感性,系统可能会自动授予权限,或者需要由设备用户对请求进行许可。例如,如果您的应用请求打开设备手电筒的权限,系统将自动授予该权限。但如果您的应用需要读取用户联系人,系统会要求用户授权。 用户需要在安装应用(运行 Android 5.1 和更低版本的设备)或者运行应用(运行 Android 6.0 和更高版本的设备)时授予权限,具体取决于平台版本。
acc8226
2022/05/17
1.8K0

相似问题

安卓系统上的reCAPTCHA?

20

安卓系统上的PyQt

20

安卓系统上的MongoDB

60

安卓系统上的CellIdentityGsm

11

安卓系统上的OProfile

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文