2つのアプリケーション間でアイコンを共有したいと思います。私はアプリケーション1のフォルダにアイコンを保存し、アプリケーション2のフォルダを使用しようとしました。アクセス権を追加することができませんでした。ルートされたデバイスではないからです。コンテンツプロバイダと画像ストレージ
だから私は今、コンテンツプロバイダのアイコンを保存しようとしています。コンテンツプロバイダに画像を保存することは可能ですか?これを実装する他の良い方法はありますか?助けてください。
2つのアプリケーション間でアイコンを共有したいと思います。私はアプリケーション1のフォルダにアイコンを保存し、アプリケーション2のフォルダを使用しようとしました。アクセス権を追加することができませんでした。ルートされたデバイスではないからです。コンテンツプロバイダと画像ストレージ
だから私は今、コンテンツプロバイダのアイコンを保存しようとしています。コンテンツプロバイダに画像を保存することは可能ですか?これを実装する他の良い方法はありますか?助けてください。
ContentProvidersは格納に使用されません。それらは、異なるアプリケーションコンポーネント、異なるアプリケーション、またはその両方に基づいてデータベースアクセスへのパブリックインターフェイスに使用されます。あなたがが何ができるか
は、データベース内のバイナリデータセット(BLOB)として画像を保存しています。パブリックの権限を持つコンテンツプロバイダを使用してイメージを照会し、新しいイメージをデータベースに追加します。しかし、単にあなたのアプリケーションのアイコンを格納しようとしている場合は、resフォルダを使って各プロジェクトにこれらのアイコンを置いてください。あなたがする必要がない場合は、SDKと戦わないでください。
希望は、これは正しい方向にあなたを指します。詳細については、AndroidのContentResolver APIとContentProvider APIを参照してください。あなたは、単純にパッケージ名を使用して、リソースのIDまたは名前を知ることによって、それらにアクセスできるリソース(ドロウアブル)としてApp1の上のアイコンを保存した場合
(それはあなた自身のアプリですので、私は;-)あなたがこれらを知っていると仮定)
PackageManager.getResourcesForApplicationをご覧ください。 リソースに名前でアクセスするには、Resources.getIdentifierを使用できます。
アイコンをドロウアブルに保存していません。必要なアイコンを含む新しいフォルダを作成します – Kamalone
プライベート静的最終文字列のDATABASE_CREATE = "テーブルを作成" + DATABASE_TABLE + "(_id整数主キーの自動インクリメント、" + "アイコン名のテキストがnullではない、nullでないBLOB);";これは私が使用している作成クエリです。これは正しいですか? – Kamalone
@Paruこれは正しく見えますが、自動インクリメントとオートインクリメントの間に+が必要ありません。また、ほとんどの人がそうしているので、私はSQLキーワードのために大文字を使用します。また、ContentProviderで使用されるSQLiteOpenHelperでデータベースを作成する場合 – jjNford
はい正しいです。 – Kamalone