問題タブ [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 投票する
7 に答える
45202 参照

android - Androidでプログラムで連絡先を削除する方法

次のコードを試して、指定された番号の連絡先を削除します。

しかし、私はこの例外を受け取ります:

私の問題を解決する方法を教えてください。

ありがとうございました。

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

android - ContentResolver - ファイルにマップされるリソースのランダム アクセス/シーク可能な表現を取得する方法

ContentResolver コンテンツにファイルとしてアクセスするにはどうすればよいですか? 基になるファイルベースのコンテンツを InputStream として開く簡単な方法がありますが、InputStream をシークすることはできません。RandomAccessFile がありますが、インスタンスを作成するには File またはファイル名が必要です。

読もうとしているコンテンツがファイル (電子メールの添付ファイル) にマップされています。

0 投票する
4 に答える
19444 参照

android - Android:ContentResolver使用時のSQLiteトランザクション

目標:XMLデータからデータベースを更新する

プロセス:

  • トランザクションを開始します
  • テーブルから既存のすべての行を削除します
  • 解析されたXMLの各メイン要素ごとに、行をメインテーブルに挿入し、PKを取得します
  • メイン要素の子ごとに、前のステップのFKを提供する2番目のテーブルにレコードを挿入します
  • トランザクションをコミットする

db操作に関してはかなり標準的なものです。問題は、CRUD操作が内部で実行されるのContentProviderではなく、を使用して実行ContentResolverされるため、たとえば挿入がのように見えることですresolver.insert(CONTENT_URI, contentValues)。ContentResolver APIにはトランザクションに関連するものがないようbulkInsertで、2つのテーブルに断続的に挿入しているため、使用できません(さらに、トランザクション内にも含めたいdelete)。

を使用してカスタマイズContentProviderしたリスナーをリスナーとして登録することを考えていましregisterContentObserverたが、ContentResolver#acquireProviderメソッドが非表示になっているため、正しい参照を取得するにはどうすればよいですか?

私は運が悪いですか?

0 投票する
11 に答える
37495 参照

android - Android:ContentResolverのDistinctとGroupBy

ベースのクエリを追加DISTINCTおよび/または追加する正しい方法は何でしょうか?GROUPBYContentResolver

今のところ、特別な場合ごとにカスタムURIを作成する必要があります。

もっと良い方法はありますか?

(私はまだ最小公分母として1.5をプログラムしています)

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

android - インジェクションを安全にするために、contentResolver の delete メソッドをどのように使用することをお勧めしますか?

URI によって、またはいくつかのパラメーターを where パラメーターに渡すことによって、コンテンツ リゾルバーで削除できます。

パラメータを SQL インジェクションセーフにするにはどうすればよいですか?
ContentResolver でプリペアド ステートメントを使用することは可能ですか?

0 投票する
3 に答える
3176 参照

java - Androidで連絡先グループの削除を使用する際の問題

連絡先グループを削除するためのこのコードがあります

私は次のようなメソッドを呼び出します

私は持っています

IDは正常に渡されます。

b値は1を返しますが、削除は実行されません。アクティビティを再開しても、リストにレコードが表示されます。私が間違っていることは何ですか?

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

java - ContentResolver を使用して連絡先グループを更新すると、更新が機能しない

更新用のこのコードがあります:

に値がありdata、再確認しましたが、何らかの理由で値が押し出されています。cur.requery();私も実行しました

EDIT 1 言及すべきことの1つは、使用する必要があることです。

trueContentValues をチェックすると返されますが、そこの値は受け入れられません。

0 投票する
5 に答える
6332 参照

java - 連絡先を次の誕生日順に取得する方法は?

連絡先の詳細と誕生日を読み取るコードがあります。しかし、次の誕生日順に連絡先のリストを取得するにはどうすればよいでしょうか?

で識別される 1 人の連絡先について、次のidような詳細と誕生日を取得します。

すべての連絡先を読み取るコードは次のとおりです。

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

android - ContentResolverカーソルをデータベースカーソルと結合する方法は?

ContentResolverをクエリすることにより、システムからレコードを取得します。データベース内のアイテムの順序を維持します。そこで、データベースから取得した順序でアイテムを表示したいと思います。

これら2つの情報をマージするにはどうすればよいですか?

編集1

私は今、別の方法を探しています。私が理想的に欲しいのは:

  • データベースに保持されているカスタム順序で連絡先の順序を取得します(これには、CRをDBカーソルで結合し、後で順序付けを行うことが含まれます。後で、CursorJoinerでは不可能です)
  • しかし、もっとあります。結合が一意でない場合は、最後のメジャーとして連絡先の名前で並べ替えます

これは、カーソルとジョイナーを使用することは不可能です。これは、順序byの機能が欠落しているためです。また、ExpandableListで使用するため、カーソルを返す必要があります。

また、これはTSQLに変換され、次のようになります。

だから私は今、代替案を探しています。
CRからすべてのデータを一時DBテーブルにロードしてから、テーブルを結合して順序付けを実行できる一時テーブルでクエリを実行することを念頭に置いていますか?これはあなたにとってどのように聞こえますか?

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

android - ContentResolver列クエリでSQL関数を実行できますか?

AndroidのContentResolverが、ContentProviderにクエリを実行するときに、列に対するSQL関数の使用をサポートしているかどうか疑問に思っています。SQLite3の日付関数など、特定の日付形式を取得するには、またはdatediff?

あなたはこれについて何を知っていますか?