問題タブ [android-contentresolver]
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 - Android:SDカードの特定の場所からサムネイルを取得する
AFAIKが経由して画像のサムネイルにアクセスするMediaStore.Images.Thumbnails
と、最初の試行でサムネイルが生成されます。これは、SDカードの特定の場所に対して実行する必要があるものです。
問題は、特定のフォルダの下のコンテンツに有効なURIを作成する方法です。
私が見つけることができるすべての答えはMediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI
、URIと同じように使用できますmanagedQuery
。その結果、すべてのsdcardイメージを指すカーソルが作成されますが、特定のフォルダーのみにアクセスする方法の例はありません。
android - Android プレイリストを作成
コードで Android にプレイリストを追加する方法を知っている人はいますか?
コンテンツ リゾルバーに挿入する必要があることはわかりましたが、曲 ID だけを挿入する必要がありますか、それとも曲のすべてのデータを挿入する必要がありますか?
サンプルコードを探していますが、まだ見つかりません。
編集:ここで答えが見つかりました。私はそれを行う方法です:
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 - コンテンツサービスのクラッシュ
奇妙な例外が発生します:
10-31 09:09:51.308:ERROR / ContentService(59):ContentServiceのクラッシュ10-3109:09:51.308:ERROR / ContentService(59):java.lang.NullPointerException 10-31 09:09:51.308:ERROR / ContentService(59):android.content.ContentService $ ObserverNode.collectObserversLocked(ContentService.java:620)10-31 09:09:51.308:ERROR / ContentService(59):android.content.ContentService.notifyChange(ContentService。 java:134)10-31 09:09:51.308:ERROR / ContentService(59):android.content.IContentService $ Stub.onTransact(IContentService.java:91)10-31 09:09:51.308:ERROR / ContentService( 59):android.content.ContentService.onTransact(ContentService.java:83)10-31 09:09:51.308:ERROR / ContentService(59):android.os.Binder.execTransact(Binder.java:288)10 -31 09:09:51.308:ERROR / ContentService(59):dalvik.system.NativeStart.run(ネイティブメソッド)で
その後、エミュレータの再起動のみが役立ちます。誰もがこれが何であるか知っていますか?
オリ
android - sqlite データベースにバイナリ データを書き込む Android の ContentResolver
Androidのソースをいくつか読んでいますが、これを読みました:
ビットマップ (ビットマップ) をデータベースに格納しようとした場合 (uri はデータベース内の行の URI です)。私が理解できる限り、openOutputStream はバイナリ データをデータベースに格納できますが、ファイルのパスのみが DB に配置されます。ファイルはファイルシステムのどこかに配置されます。これは正しいです?私の質問は、この方法で保存されたファイルの正確な場所を指定するにはどうすればよいですか? 明確にしていただきありがとうございます。
android - AndroidのMMSデータベースからmms番号、送信/受信、本文、および添付ファイルの詳細が必要です...どうすればいいですか?
「content://mms」コンテンツ リゾルバを使用し、mms データベースを取得しています。そこから番号、送受信、本文、添付ファイルの詳細を取得する方法は?
android - ContentResolver.insert は null を返します
アクティビティ内からサウンドを着信音/通知として設定するときに問題が発生することがあります。
ほとんどの場合、uri は "content://media/external/audio/media/23" のようなものですが、null の場合もあります。問題がどこにあるのかわかりません。オーディオ ファイルは問題ありません (問題なく再生されます)。もちろん、挿入メソッドは例外をスローしません。ドキュメントを調べましたが、null を返すメソッドについては何もありません。何が問題なのですか?
android - Android 用 ContentProvider の作成と使用
Android ContentProvider を呼び出すと、次の例外が発生します。
java.lang.RuntimeException: アクティビティ ComponentInfo を開始できません{de.harm.android.couchone/de.harm.android.couchone.CouchContactClient}: java.lang.IllegalArgumentException: 不明な URL content://de.harm.android.couchone .プロバイダ/test2
これらはプロジェクトです:
- https://github.com/der-harm/CouchOneProvider
- .../CouchOneContacts
Android はいわゆるContentResolver
を使用して通信しContentProvider
、次に永続化機能 (データベースへのアクセス) を処理します。
はContentProvider
一意の Uri で登録されます。は、このUri を使用して をContentResolver
呼び出し、ContentProvider
SQL クエリ文字列や保存するデータなどの追加データを渡します。
CouchOneProvider
/AndroidManifest.xml
には、次のものがあります。
プロバイダーが使用する
と
を呼び出すためにCONTENT_URI
によって使用されるを処理するには:ContentResolver
ContentProvider
- 両方のいずれかに権限がありませ
AndroidManifest.xml
んか? - 権限を
AndroidManifest.xml
間違って定義していますか? CONTENT_URI
間違っていますか?
アップデート:
追加情報があります:
Logcat は次のように述べています。
de.harm.android.couchone.provider のプロバイダー情報が見つかりませんでした
これが出発点であるべきです。しかし、これまでのところ、解決策を見つけることができませんでした。
ContentProvider
実装の完全修飾クラス名は次のとおりです。
AndroidManifext.xml
名前が小文字であることを除いて、これは権限として正確に指定されていますが、これで問題ありません。
パッケージ名はxmlファイルであらかじめ定義されているので、「.Provider」でもOKです。
例外に見られるように、クライアントは次を呼び出します。
Logcatsの答えは次のとおりです。
de.harm.android.couchone.provider のプロバイダー情報が見つかりませんでした
何が欠けているのかわかりません。おそらく、Eclipse またはエミュレーターの問題でしょうか?
「run project as Android application」でプロバイダーをインストールします。
android - Androidのすべてのカメラ画像を一覧表示
Androidデバイスのすべてのカメラ画像のリストを取得するにはどうすればよいですか?
MediaStore経由ですか?どのように?
android - ContentResolverはどのようにして対応するContentProviderを見つけますか?
これは深い魔法の質問です。ContentResolverメソッドの呼び出しがContentProviderに固有のURIを取得することを理解していますが、Androidは実際にどのように関連付けを行いますか?
AndroidManifest.xmlのContentProviderで提供される権限に一致するURIが含まれていると思います。要求は、その権限を含むすべてのプロバイダーに送信されますか?権限が別の権限の前に付くプロバイダーを作成しようとすると、それは問題になりますか?
ContentProviderが実行されているかどうかを確認する方法はありますか?getType()メソッドのダミー応答が活気を示しているのではないかと思います。