問題タブ [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 - 孤立した画像を避けて、Android MediaStoreコンテンツプロバイダーにクエリを実行する方法は?
デバイスのメディアストアにある写真のサムネイルを表示し、ユーザーが写真を選択できるようにするアプリ内アクティビティを提供しようとしています。ユーザーが選択した後、アプリケーションは元のフルサイズの画像を読み取り、それを使用して処理を行います。
次のコードを使用しCursor
て、外部ストレージにすべての画像を作成しています。
そして、サムネイル画像をロードするための次のコード(Android 2.xコードが表示されています):
そして、ユーザーが選択したら、URLから元の画像をロードする次のコード:
自分の携帯電話を含む一部のAndroidデバイスで見られる問題は、クエリから取得したカーソルにonCreate()
、実際のフルサイズの画像ファイル(JPGまたはPNG)が欠落しているエントリがいくつか含まれていることです。(私の電話の場合、画像はインポートされ、その後iPhotoによって消去されました)。
孤立したエントリには、AWOL時に実際のメディアファイルの前にサムネイルが生成されたかどうかに応じて、サムネイルが含まれる場合と含まれない場合があります。その結果、アプリは実際には存在しない画像のサムネイルを表示します。
少し質問があります:
MediaStore
返されたメディアが欠落している画像を除外するコンテンツプロバイダーに対して行うことができるクエリはありますCursor
か?MediaStore
を強制的に再スキャンし、孤立したエントリを削除する手段またはAPIはありますか?私の電話では、USBにマウントしてから、外部メディアをアンマウントしました。これにより、再スキャンがトリガーされます。しかし、孤立したエントリは残ります。- それとも、この問題を引き起こしている私のアプローチに根本的に何か問題がありますか?
ありがとう。
android - 特定のデータについてAndroidデータベースにクエリを実行する
データベース行の列にデータが入力されているかどうかを確認するメソッドを作成しています。その場合は、その行のvarcharを返します。そうでない場合は、Webサービスを呼び出してそのデータを返します。
私の質問は、Androidで列を選択する標準的な方法は何ですか?(mytableからmycolumnを選択します。ここで_id = x;)
データベースの周りにContentProviderを作成しました。'query'を直接呼び出す必要がありますか?注:このメソッドはサービス内にあります
android - UriMatcherが間違った値を返します
私は2つのURIを持っています。それらが次のようになっていると仮定します。
私の拡張ContentProviderで、次のことを宣言しました。
私が使うとき...
...任意のContentProviderメソッド、たとえば挿入を呼び出すときのUri、および私のContentProviderメソッドは...
...そして私は1(メッセージ)を取り戻します。
なぜ???
android - データベースまたはテーブルが存在しない場合、Androidでsqlite3カーソルをモックすることは可能ですか?
Webサービスクエリの結果をキャッシュするためにContentProviderを使用しています。これはHTTPリクエストであり、レスポンスの内容はXMLです。ほとんどのデータはキャッシュされているので、DBにクエリを実行します。見つからない場合は、Webサービスにリクエストし、DBに挿入して、DBを再クエリします。したがって、応答は常にSQLiteDatabaseHelperからのカーソルです。
DBに保存されていない結果セットが1つあり、100%一時的であるため、DBのカーソルからの外観を提供したいと思います。これを行う簡単な方法はありますか?たとえば、cursor.setValue( "string"、objectValue)またはその他の既存の実装を使用してカーソルに投影できる場合です。
そうでない場合は、このコンテンツ結果のDBをバイパスするか、常に再利用される簡単なテーブルに詰め込みます。
android - SDカードに保存せずに画像を送信するにはどうすればよいですか?
画像を表示するアプリケーションを開発しています。アプリケーションには、画像を添付ファイルとして電子メールで送信するオプションがあります。画像を添付ファイルとしてメールで送信するには、画像をSDカードに保存する必要があります。
最初にSDカードに書き込まずに画像を添付ファイルとして電子メールで送信することはできますか?
android - Android の CursorAdapter はバックグラウンド スレッドで実行されますか?
CursorAdapter はバックグラウンド スレッドで実行され、UI ルーパー スレッドを介して更新をポストしますか? そうでない場合、ContentProvider から非同期的にデータをロードするための最適なパターンは何ですか?
android - Android SMS の処理
AndroidがSMSを受信したときにSMSをどのように処理するのか疑問に思っています。より正確に私の質問は、Android フォンが SMS メッセージを受信したとき、どのアプリケーションがメッセージを mmssms データベースに保存するかということです。これは OS によって行われますか?それともネイティブの SMS アプリケーションによって行われますか?
android - Android でコンテンツ プロバイダを使用して複数のテーブルを公開するためのベスト プラクティス
イベント用のテーブルと会場用のテーブルがあるアプリを作成しています。このデータへのアクセスを他のアプリケーションに許可できるようにしたいと考えています。この種の問題のベスト プラクティスに関していくつか質問があります。
データベース クラスはどのように構成すればよいですか? 私は現在、EventsDbAdapter と VenuesDbAdapter のクラスを持っています。これらは各テーブルをクエリするためのロジックを提供し、データベース バージョンの管理、データベースの作成/アップグレード、データベースへのアクセス (getWriteable/ReadeableDatabase) の付与のための個別の DbManager (SQLiteOpenHelper を拡張) を持っています。これは推奨される解決策ですか、それともすべてを 1 つのクラス (つまり DbManager) に統合するか、すべてを分離して各アダプターに SQLiteOpenHelper を拡張させる方がよいでしょうか?
複数のテーブルのコンテンツ プロバイダーをどのように設計すればよいですか? 前の質問を拡張すると、アプリ全体に 1 つのコンテンツ プロバイダーを使用する必要がありますか、それともイベントと会場用に別々のプロバイダーを作成する必要がありますか?
私が見つけたほとんどの例は、単一のテーブル アプリのみを扱っているため、ここで何かヒントをいただければ幸いです。
android - Android プライベート コンテンツ プロバイダ?
ユーザーの機密情報を扱うアプリケーションを開発しています。この情報は、プライベート Web API を介して取得します。このデータをアプリに取り込むための最良の方法を決定しようとしています。現在、それが可能なコンテンツ プロバイダーの作成を検討しています。私のためらいは、それを安全にすることです。このデータを自分のアプリケーションでのみ使用できるようにしたい。理想的には、他のアプリがその存在を認識さえしないことです。
これを効果的かつ安全に行うための指針やアドバイスはありますか? データ ソースがリモート OAuth 化された API であるコンテンツ プロバイダーに関する情報はありますか?
ありがとう!
編集: 私はコンテンツ プロバイダーと言っていますが、それが私が必要とすることを行う最善の方法ではない場合は、他に何を調べる必要があるかをぜひお知らせください。
android - ContentProvider インスタンス化の失敗 - NullPointerException
これは私のカスタム プロバイダーのコードで、
ほとんどが SDK のメモ帳プロジェクトからコピーされたものですが、
なぜ
nullPointException が発生するのか理解できません。
ありがとう !:)