[英]'Spoofing' the extras of an Intent
我想制作一个可以用作第三方应用程序便捷入口点的应用程序,使用我的参数开始其活动之一,而不是单击它来进行相同的操作。 我对第三方应用程序有些了解:我需要一个Intent,该Intent包含一个由应用程序定义的Payload
类实例的已知字符串,该实例对我来说是已知的 , 该字符串带有一个.putExtra
。
我的问题:我如何发送自己的意图与将被接受为应用程序自己的Payload
? 即,如果定义为(简要表示)
public class Payload implements Serializable {
private String url;
Payload(String url) { this.url = url; }
public String getUrl() { return url; }
}
我可以定义我自己的吗
public class NotPayload implements Serializable {
private String x;
Payload(String x) { this.x = x; }
}
在我自己的应用程序中,并发送意图? 还有更多的参与吗?
对于警惕的人,我的目标绝不是恶意的。 我只想补充一个应用程序,并计划与应用程序开发人员共享结果(好的,带有“您是否已经要添加此功能?”的小标题)。
不,这行不通。
您将可以使用您的课程将数据存储在您的身边。 Intent代码会将您的对象序列化为字节数据。 第三方应用程序中的代码将尝试将数据反序列化为对象。 这将失败。 可序列化的数据只能反序列化到同一类中。
照原样复制原始类的定义,而不更改类名或包。
然而有 ,更多地参与:目标活动必须出口-要么明确,与andoid:export="true"
,或含蓄,有意向的过滤器。 您不能将Intent发送到任何应用程序的任何随机组件:正如我所知,您将获得一个安全异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.