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

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

android - Android - ウィジェットからアクティビティを呼び出す

私は現在、私のアプリのウィジェットを持っていますメインアプリケーションにバンドルされDroidを雇います。ウィジェットをアンバンドルして、別の製品としてリリースしたいと考えています。ただし、ウィジェットはメインアプリに依存しているため、主にウィジェットからメインアプリのActivities特定を呼び出すこれら2つの間を移動する必要がありActivityます。したがって、基本的な考え方 - アプリはウィジェットなしで動作し、ウィジェットは「アドオン」オプションになります。

スタンドアロン ウィジェットからアプリ アクティビティを呼び出す「正しい」方法は何ですか? メイン アプリをコンテンツ プロバイダーに変換しますか? おそらくコードサンプルを教えてもらえますか?

あけましておめでとう!

PS 同じ APK にバンドルされているウィジェットからアクティビティを呼び出す方法を尋ねているわけではありません。質問は、ウィジェットが呼び出しているアプリとは別に配布されることを具体的に述べています

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

android - AndroidでMMSログインを照会する方法

私のアプリでは、SMSとMMSの両方のログをクエリして、すべての着信メッセージと発信メッセージの履歴を取得する必要があります。このコードはSMSでうまく機能しました:

しかし、次のことを試してみると、まったく異なる結果が得られます。

SMSクエリは、メッセージアドレス(電話番号)、連絡先名、メッセージの件名、メッセージ本文などを含むデータを返します。MMSの同じクエリは、意味をなさない一連のnullまたは数値フィールドを返します。の。電話番号または連絡先IDが関連付けられた、現在電話にあるすべてのMMSメッセージのリストが本当に必要です。また、メッセージが着信メッセージか発信メッセージかを確認する必要があります。SMSクエリの結果では、フィールドから電話番号を取得でき、addressフィールドから着信/発信タイプを取得できtypeますが、MMSをクエリすると、どちらも存在しません。

この種のMMSデータを照会する必要がある別のコンテンツURIはありますか?どんな助けでも大歓迎です。

編集:明確にするために、私はこれがサポートされていないコンテンツプロバイダーであることを完全に認識しています。ただし、これを行うためのサポートされている方法がないため、電話ごと/OSバージョンごとにこれをテストしてサポートするつもりです。議論を軌道に乗せるために、この質問はHTC Dream(G1)またはHTC Magic(MyTouch)上のAndroid1.6に固有であるとしましょう。その特定の電話とOSのバージョンでこのタスクをどのように達成しますか?または、それらでは不可能であるが、MotorolaDroidのAndroid2.0では可能である場合は、その情報も非常に役立ちます。しかし、それにもかかわらず、サポートされている方法またはサポートされていない方法でこのタスクを実行する方法の議論に固執し、APIでサポートされていないものから私たち全員を遠ざける方法の議論に委ねないようにしましょう。これは、Androidのディスカッショングループがいじくり回されていると私が感じていることであり、何の助けにもならない、と私は感じています。サポートされていない方法を使用している場合は、それで問題ありません。そのタスクを実行するためのサポートされている方法を教えてください。サポートされているメソッドがない場合、なぜAPIがandroid.permission.READ_SMSを介してSMSを読み取る許可を要求できるようにするのですか?

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

android - コンテンツ プロバイダーはアプリケーションの一部ですか?

私は3つのものを作成する必要があります:

  • コンテンツ プロバイダー
  • サービス
  • 応用

これら 3 つすべてが 1 つのプロジェクトになるのか、それとも 3 つの異なるプロジェクトになるのか疑問に思っています。

また、コンテンツ プロバイダを自分のサービスとアプリケーションに制限するにはどうすればよいですか?

よろしく、
Pentium10

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

android - カスタム ContentProvider - openInputStream()、openOutputStream()

openInputStream()コンテンツ プロバイダー/リゾルバー API は、URI とおよびメソッドを使用して、プロセス間でデータを転送するための複雑ですが堅牢な方法を提供しopenOutputStream()ます。カスタム コンテンツ プロバイダには、メソッドをカスタム コードでオーバーライドしてopenFile()、URI をStream;に効果的に解決する機能があります。ただし、 のメソッド シグネチャにopenFile()ParcelFileDescriptor戻り値の型があり、動的に生成されたコンテンツをこのメソッドから返すための適切な表現を生成する方法は明確ではありません。

コンテンツ プロバイダーからメモリ マップされた InputStream を返しますか?

ContentProvider.openFile()既存のコード ベースに動的コンテンツのメソッドを実装する例はありますか? そうでない場合は、そのためのソースコードまたはプロセスを提案できますか?

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 投票する
3 に答える
2002 参照

android - リストのチェックボックスが予期せずチェックされる

Custom によってバインドされたリストにチェックボックスのリストがありますsimpleCursorAdapter。私のカスタムsimpleCursorAdapterでは、変更を加えてオーバーライドnewViewしましbindViewた。私は何とかマルチチョイスを行うことができました。奇妙なことに、リストからアイテムを削除した後、最初のアイテムのチェックボックスが突然チェックされます。それはどのように起こりますか?どうすれば解決できますか?

SimpleCursorAdapterのクラス:

ListActivityチェックボックス項目を削除するボタンを記述するクラスのコード部分を次に示します。

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

android - Android-アプリのインストール時にコンテンツプロバイダーに1回だけ入力する方法は?

アプリケーションにContentProviderとして使用されるデータベースがあります。

これはアプリケーションの設定値を保持し、アプリケーションをインストールするときに、ハードコードされた値のセットを1回だけ追加するようにします。

これが私がその瞬間にそれをやろうとしている方法です。

そして、これはaddNewSettingsメソッドです。

これは機能しますが、アプリが起動するたびに新しい設定オブジェクトが追加され、アプリケーションのインストール時に1つのオブジェクトのみを適用する必要があります。

誰かがこれに対するより良い解決策を持っていますか?または、私のコードに欠陥がある理由は?

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

android - Android で、ContentProvider の必要なアクセス許可を LiveFolders に付与するにはどうすればよいですか?

Android で、FINE_LOCATION パーミッションを必要とするコンテンツ プロバイダーの場合、LiveFolder を作成するにはどうすればよいですか?

LiveFolder が atcom.android.launcher.LiveFolderAdapter.query(LiveFolderAdapter.java:58)から aでクラッシュし続けjava.lang.SecurityException: Permission Denialます。

LiveFolder のアクセス許可を付与する方法を探し続けていますが、これを見つけることができません。

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

java - Android でカーソルを呼び出すときに NullPointerException を受け取る

GPS を使用してユーザーの位置を追跡し、コンテンツ プロバイダーを使用して経度と緯度をデータベースに保存し、最初の経度と緯度をマップビューに出力するアプリケーションを作成しています。

次のコード行を使用してカーソルを作成できます。

ただし、データベースの最初の行に移動するための呼び出しを行ったり、を使用してカーソルを閉じようとしたりするとc.close();NullPointerException.

編集:明確にするために、経度、緯度、時間をデータベース内にミリ単位で保存できます。問題は、データベースからデータを取り出して、これを地図上に表示することです。

更新されたコード:

更新された権限: