繁体   English   中英

“欺骗”意图的额外内容

[英]'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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM