問題タブ [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.

0 投票する
1 に答える
677 参照

android - Android: クエリ使用時の contentResolver エラー

私は小さなアプリを持っています。ユーザーが連絡先を 1 つ選択するだけで、contact listその携帯電話番号が画面に出力されます。

したがって、リスト内の 1 つの連絡先をクリックして使用すると、このユーザーに関する情報を含む URI オブジェクトが返されます。そして、処理するクエリをいくつか入れます。

これが私の簡単なクエリです:

しかし、このコードを実行すると、LogCat にエラーが表示されます。

1)DatabaseUtils.readExceptionFromParcel

2) エラー:

慎重にチェックしたので、クエリに「文法ミス」があるとは思いませんが、LogCat にはエラーが表示されません。

この問題を解決するのを手伝ってください。

ありがとう :)

0 投票する
2 に答える
1660 参照

android - ContentProvider を使用して Android で SQLite DB をアップグレードする

私はアプリを開発しており、SQLite、contentResolver、および contentProvider を使用しています。

アプリケーションの説明 私のアプリは、内部 SQLite DB で連絡先を検索します。データは、最初の昼食時またはユーザーがメニューの更新オプションを押したときに選択された外部ファイルから到着します。

DB へのすべてのアクセスは getContentResolver() を使用して行われます。

ContentProvider ContentProvider 拡張し、 SQLiteOpenHelperを拡張するデータベース アダプターであるContactsDBAdapterへの参照を保持するContactsContentProviderクラスがあります。(私はあなたが今まで私と一緒にいたことを願っています).

問題 の説明 ユーザーが更新ボタンを押したときに、DB がすべてのテーブルを削除して新しいデータをロードするようにします (これはファイル チューザーによって行われ、うまく機能します)。ContactsDBAdapterのonUpgrade()を機能させるには、コンテンツ プロバイダーの onCreate() を以前よりも新しいバージョンで呼び出す必要があります

しかし、contentResolverからcontentProviderを取得するので、2 回作成されることはありません。

contentProvidercontentResolverの両方を使用する方法については多くの説明がありますが、適切なアップグレードの進行状況はどこにも見つかりませんでした。

onUpgrade がどのように機能するか、および getReadableDatabase ()およびgetWritableDatabase()呼び出し中にチェックされていることは認識していますが、 ContactsDBAdapterは以前と同じインスタンスであるため、バージョンが異なることはありません。

いくつかの回避策を考えましたが、まったく気に入りませんでした。バージョンが高い場合はinsert()中に手動で確認できます(ただし、すべての呼び出しで行われるため、費用がかかります)。答えが真の場合は、onUpgradeを手動で呼び出します。

または、何らかの方法でプロバイダーの登録を解除しようとしましたが、これまで有効で適切な解決策が見つかりませんでした。

DB をアップグレードするためのベスト プラクティスは何ですか?

ありがとう!

0 投票する
1 に答える
1042 参照

android - Android: CONTENT_URI への SQL クエリ

Android 開発者の皆様、こんにちは。1つ質問を教えてください。やっています

Android 2.3.3 では正常に動作しますが、Android 4.03 では GROUP BY クエリがサポートされなくなったため、Android 4.03 ではクラッシュします。( https://stackoverflow.com/questions/8837544/android-ics-sqlite-error )

そこで、サンプル コードを使用して URI Contacts.CONTENT_URI への生の SQL クエリを作成することにしました。

または

groupBy パラメータを持つもの。

しかし、2番目のケースで CONTENT_URI または CONTENT_URI のデータベース名から dbHandle を取得する方法がわかりません。

前もって感謝します!

0 投票する
2 に答える
948 参照

android - ContentProviderリクエストの停止

私は長期にわたってコンテンツプロバイダーを運営しています。基本的には、クラウドで検索を実行し、結果とともにカーソルを返します。私の問題は、サーバーの接続と負荷に依存することです。結果が戻るまでに5〜7秒かかる場合があります。

予測検索にコンテンツプロバイダーを使用している場合、前のクエリが返されるまで、(同じアクティビティからの)追加のクエリをブロックしているようです。

プロバイダークエリをキャンセルする方法について何か提案はありますか?

asyncTask&Threadを使用してみましたが、役に立ちませんでした。プロバイダー(リゾルバー)でまだブロックされているようです

0 投票する
0 に答える
289 参照

android-camera-intent - カメラインテントによってキャプチャされた写真の向き

意図的にカメラを起動して、カメラからいくつかの画像をキャプチャしました。

キャプチャした後に画像をビューに表示すると、ポートレートなどでキャプチャされているかどうかに関係なく、画像の向きは常に横向きになります。私はこのフォーラムで読んだ内容に基づいてこれを期待しています。

ただし、ギャラリーアプリまたはファイルマネージャーから見ると、正しい向きで表示されます。

ギャラリーアプリは、キャプチャの向きが何であったかをどのように認識しますか?同じ情報にアクセスしたいのですが、ExifInteraceまたはContentResolverに含まれていないようです。

0 投票する
1 に答える
999 参照

android - ContentProvider クラスと ContentResolver クラスの query() の違い

私はアンドロイドが初めてです。現在、コンテンツ プロバイダーを担当しています。「Pro android 3」の本をフォローしています。そこから、BookProvider例を実装しました。クラスを拡張するクラスにinsert,update,delete関数を実装しましたが、関数を使用しているときに、次を使用しました:BookProviderContentProvider

私の疑問は、私がクラスで書いたメソッドがBookProviderクラスとどのように通信するContentResolverかです...

Contextまた、誰かが基本的な定義、ContentProviderContentResolverクラスの違いと関係の例を教えてください

もう 1 つの疑問は、いくつかの例では、コンテキスト オブジェクトを Activity オブジェクトに明示的にキャストしていることです。Activity クラスと Context クラスはどのように関連していますか?

0 投票する
1 に答える
1324 参照

java - 「クエリ」メソッドで選択引数を渡す方法

クエリ メソッドを使用して、特定のアーティストによるすべてのアルバムを取得しようとしています。しかし、私は初心者で、クエリ メソッドで選択引数を渡す方法がわかりません。

これは私がこれまでに持っているものです:

artistChosen は、必要なアーティストを含む文字列です。

私が言ったように、私は実際に選択引数を渡す方法を知らないので、これは単なる試みでした.

だから私が求めているのは、選択引数をクエリメソッドに渡す方法だと思います。

どんな助けでも大歓迎です。

0 投票する
1 に答える
166 参照

android - Androidでメッセージが送信されないようにする

次のコードを使用して送信されているメッセージを検出できることを知っています

知りたいのですが、出ないようにしたり、一時停止したりすることはできますか?

ありがとう

0 投票する
1 に答える
1630 参照

android - ウィンドウとトランジションの設定を無効にする

だから私がする必要があるのは、コードでウィンドウおよび/またはトランジションアニメーションのオンとオフを切り替えて、設定>ディスプレイ>アニメーション>すべてのアニメーションを無効にするのと同じ効果を持つことです。

デバイス設定の変更に精通している方法は、次のように Settings.System.putInt() メソッド内で ContentResolver を使用することです。

ドキュメントで説明されているように、両方の設定で「0 に設定するとすべての .... アニメーションが無効になります」。putInt() メソッドを使用する前後の設定を読み取る場合は、次のようにします。

設定が変更されていることがわかります。ただし、ウィンドウまたはトランジション アニメーションを開始するために何かを実行すると、設定による違いはなく、トランジションがまだ発生していることは明らかです。

また、[設定] 画面内から設定を変更すると、アプリケーションを再実行すると設定が変更されていることがわかります。したがって、これは正しい設定であり、アプリケーションが正しく変更していないようです。

私が見逃しているものは他にありますか?

前もって感謝します。

0 投票する
2 に答える
21849 参照

android - CursorLoaderを介してContentProviderのinsert()メソッドを使用してSQLiteデータベースに値を適切に挿入するにはどうすればよいですか?

私はドキュメントを読んでいましたが、それでもよくわかりません。を使用するように指示さgetContentResolver()れていますが、実際にはCursorLoaderを使用していません。それで、それを実行する方法はありCursorLoaderますか?私はでそれを行う方法を知っていますquery()。手順は非常に似ていますか?これを正確に説明するリンクだけでも役に立ちます。

insert()を使用してContentProviderのメソッドを使用する例がないため、GoogleドキュメントにリンクしないでくださいCursorLoader

前もって感謝します!!

編集:私がこれと混同している理由は、newを呼び出すとCursorLoader自動的にContentProviders query()メソッドが呼び出されるためです。しかし、どうすれば挿入に対して同じことができますか?