2010-12-15 15 views
0

私のアプリケーションでは、Intent.ACTION_VIEWでアクセス可能ないくつかのデータを表示する必要があります。問題は単純な事実ですが、私のデータのACTION_VIEWインテントウリに渡すことができません。なぜなら、ファイルやネットリソースにないデータは暗号化データベースに入っているからです。 android.net.Uriをサブクラス化するか、方法を見つけて、Uriの単純なInputStreamの代わりにACTION_VIEW acceptを教える必要があります。しかし:ウリ()コンストラクタはIntent.ACTION_VIEWだけUriデータとしてを受け入れIntent.ACTION_VIEW and subclassing android.net.Uri

  • プライベートであるため、

    1. android.net.Uriは、サブクラス化することはできません

    任意のアイデア(それをしません?)どのように問題を解決するには?

    答えて

    0

    「データ」が「暗号化されたデータベース」の場合、そのデータを表示するための独自のアクティビティを作成する必要があります。これはあなた自身のアクティビティなので、「暗号化されたデータベース」にアクセスすることができます。

    +0

    これはオプションですが、データのMIMEタイプが異なる可能性があるため、ビルトインビューアを使用したいと考えています。可能性のあるすべてのビューアを書き換えることができません。恐らく利用可能な視聴者にフック/コールバックを持ち、それらのデータを転送する方法はいくつかありますか? – barmaley

    +0

    @barmaley:そうではありません。解読されたアクセスを提供するコンテンツプロバイダを公開することはできますが、誰でもコンテンツプロバイダにアクセスして暗号化の価値を破ることができます。あるいは、暗号化されたファイルをファイルに書き込んで 'Uri'を渡すこともできますが、パスを推測すると誰でもそのファイルにアクセスできます。 – CommonsWare

    +0

    私はすでに2回目をしています - 私は一時ファイルに保存していますが、復号化していますが、この場合にはセキュリティ違反の一時ファイルが後で復元できます(http://stackoverflow.com/questions/4448772/safely-wipe-ファイル内容)。第1の選択肢について:それを実現する方法をもう少し詳細に説明できますか? Thanx in advance – barmaley

    関連する問題