問題タブ [android-contentprovider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - sqlite3キーワードDISTINCTをAndroidContentProviderのクエリにどのように挿入できますか?
ContentProvider
Android sqlite3データベースから個別の行を返すために使用できるSQLステートメントがあり、それをのクエリに渡したいと思います。
例えば:
する必要があります
追加のキーワードをselectステートメントに渡すクリーンな方法はありますか?
android - インテントを介してバンドルを渡すか、コンテンツ プロバイダーを使用することで、パフォーマンスが低下します。
パフォーマンスとリソース割り当てが優先される Android の 2 つのアプリケーション間で、かなりのサイズのデータ (~1500 バイト) を渡したいと考えています。データは基本的にキーと値のペアです。あるアプリケーションから別のアプリケーションに渡される必要がある速度は、1 秒間にトリクルから最大 50 パケットまでさまざまです。私は次のいずれかができると思います:
バンドル内のすべてのデータをラップし、あるアプリケーションから別のアプリケーションにインテントを介してバンドルを渡します。バンドルを格納するためにすべてのメモリを割り当てたり割り当て解除したりすることによるパフォーマンスへの影響について心配しています。
すべてのデータを SQLite データベースに書き込み、コンテンツ プロバイダーを介して他のアプリケーションに提供します。ここで、すべてのデータをディスクに書き込み、要求されたときにディスクから読み戻さなければならない場合のパフォーマンスへの影響について心配しています。
では、2 つの悪のうち、どちらが小さいのでしょうか?
android - Androidコンテンツプロバイダに大きなブロブを保存する方法は?
コンテンツ プロバイダーに保存する必要がある大きなファイル (画像とビデオ) がいくつかあります。アンドロイドのドキュメントは示しています...
テーブル自体に入れるには大きすぎるバイト データ (大きなビットマップ ファイルなど) を公開している場合、データをクライアントに公開するフィールドには、実際には content: URI 文字列が含まれている必要があります。これは、クライアントがデータ ファイルにアクセスできるようにするフィールドです。レコードには、そのファイルのデバイス上の正確なファイル パスをリストする「_data」という名前の別のフィールドも必要です。このフィールドは、クライアントによる読み取りではなく、ContentResolver による読み取りを意図しています。クライアントは、アイテムの URI を保持するユーザー向けフィールドで ContentResolver.openInputStream() を呼び出します。ContentResolver はそのレコードの「_data」フィールドを要求し、クライアントよりも高い権限を持っているため、そのファイルに直接アクセスして、ファイルの読み取りラッパーをクライアントに返すことができるはずです。-- http://developer.android.com/guide/topics/providers/content-providers.html#creating
例を見つけるのに苦労しています。特に、ImageView のコンテキストでビットマップを使用したいと考えています。次のコードの準コードを検討してください(機能しません)...
観察/問題...
- 保存/回復されたURIを正しく再構築するにはどうすればよいですか? (表中のテキストです)
setImageURI 実装はコンテンツ解決 openInputStream を利用するため、これは機能するはずです。
--frameworks/base/core/java/android/widget/ImageView.java
私はそれを働かせました。MediaStore と MediaProvider からヒントを得ました。データを含むファイルには、コンテンツ プロバイダー (ディレクトリ)、列名、行 ID、およびメディア タイプに基づいて名前が付けられます。コンテンツ リゾルバーは、次のようにファイル記述子を取得します...
...そして、コンテンツ プロバイダーは親切に対応します...
android - アクティビティ外で連絡先コンテンツ プロバイダーを照会するにはどうすればよいですか?
アクティビティの外部で連絡先コンテンツ プロバイダーにクエリを実行しようとしています。しかし、managedQuery は Activity のメソッドです。managedQuery の代わりに使用できる他のクラス/メソッドはありますか?
これが私のコードです:
android - Android コンテンツ プロバイダ
データベースを作成しているコンテンツプロバイダのコードを取得したい。データベースが作成されているかどうかを確認するために、tools/sqllite3.exe にあるツールを使用しています。
この事について、段階的な手順を教えてください...
ありがとう
android - AndroidContentProviderUriマッチング
キーにスラッシュ「/」が含まれるコンテンツプロバイダーを作成しようとしています。私はそれについてかなり長い間検索しましたが、それを説明する場所/例はありません。
content://com.lily.provider/items/ *
私が理解している一般的な例: content://com.lily.provider/items/ab
私がやりたいこと:私のキーは「
/」content://com.lily.provider/items/a/bを含む文字列です。
ここで、a / bはアイテムIDであり、abと同じ位置にあります。
私の質問:
- content://com.lily.provider/items/a/bはcontent://com.lily.provider/items/ *と一致しますか?何故ですか?
- 問題を解決するために使用できる回避策はありますか
android - getContentResolver().openOutputStream(uri) プロバイダーがサポートするファイルはありません
パーソナル コンテンツ プロバイダにファイル オーディオを保存したいと考えています。私は記録を保存します:
URI uri = getContentResolver().insert(CONTENT_URI, values); OutputStream os = getContentResolver().openOutputStream(uri);
しかし getContentResolver().openOutputStream(uri); スロー:
10-13 19:44:53.903: エラー/TAB(5679): content://com.memento.data.provider.MementoProvider/audionotes/6 のプロバイダーでサポートされているファイルがありません 10-13 19:44:53.903: エラー/ TAB(5679): java.io.FileNotFoundException: content://com.memento.data.provider.MementoProvider/audionotes/6 10-13 19:44:53.903 のプロバイダーでサポートされているファイルがありません: エラー/TAB(5679): android.content.ContentProvider.openFile(ContentProvider.java:585) で
そのために _data という名前の列があります。
android - クラス UriMatcher の match(Uri) は再入可能ですか?
コンテンツ プロバイダーが応答するContentProvider
すべてのURI パターン(例: http://developer.android.com/ resources/samples/NotePad/src/com/example/android/notepad/NotePadProvider.html )。APIドキュメントで、、、、および「[すべて]を複数のスレッドから呼び出すことができる」ことに気付いた今日まで、これは問題ないように思えました。さらに、ドキュメントには、スレッドセーフまたは再入可能かどうかについては何も記載されていません。UriMatcher#match(Uri)
insert
query
update
delete
ContentProvider
insert
query
update
delete
UriMatcher
match
、、、およびの実装内で使用されるmatch
の共有static
インスタンスでの呼び出しの同期について心配する必要がありますか?UriMatcher
insert
query
update
delete
android - ContentProviderでのカーソルのラッピング/アンラッピング
別のContentProviderのプロキシであるContentProviderを作成しています(セキュリティの問題のため、および完全なアプリの機能の一部へのアクセスを提供するため)。
CPから内部CPを呼び出した後、予期しない例外を受け取りました。
例外は、CPによるカーソルのラップとラップされた転送に関するものです。外部CPはカーソルを再度ラップできないため、ここで問題が発生します。返されたカーソルのクラスを確認すると、CursorWrapperInnerを受け取りました。
外側のCPで(このCWIから通常のカーソルに)カーソルをアンラップする方法はありますか(ただし、ループ内ですべてのデータをMatrixCursorに転送するのではなく、時間がかかりすぎます)。
android - Android SyncAdapter の使用方法を教えてください。
Android の同期ロジックを理解しようとしています。私が理解していないのはsyncadapter.xml
、Android SDK サンプル プロジェクト に含まれるファイルですSampleSyncAdapter
。SDK サンプルをダウンロードした場合は、次のフォルダーにあるはずです。
コンテンツ プロバイダーの権限は、文字列またはリソースへの参照である必要があります。コンテンツオーソリティとは正確には何com.android.contacts
ですか?ファイルの内容は次のとおりです (ライセンス情報とコメントなし、API レベル 16)。