1

現在、私のアプリでは、1 時間ごとに実行されるサービスが実行されています。これにより、前回開いてから撮影された写真がすべてプルされ、サーバーにアップロードされます。これは、システム コンテンツ プロバイダーを使用して行われます。

今私がやりたいのは、カメラアプリを開くインテントを送信することです。私はこれをやっています...

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 0);

私がやりたいことは、(ユーザーが写真を撮った後) フォーカスがアプリに戻ったときに、サービスを開くことができ、それが写真を処理することです。

ただし、写真がコンテンツ プロバイダーに追加されていないようです。サービスがそれを開き、cursos のカウントが 0 になっています。システムが写真をコンテンツ プロバイダーに追加するためにできることはありますか、それとも自分で処理する必要がありますか?

編集

したがって、システムに保存するために使用できる意図はないと思います。したがって、私のオプションは次のいずれかです

contentResolver.insert()

また

MediaStore.Images.Media.insertImage()

これら2つの方法の違いは何ですか?

編集

だから私は、この機能の実装についてグーグルが無知だと思い始めています。このリンクをたどってください

http://developer.android.com/guide/topics/media/camera.html#intent-receive

Uri を渡すと、アプリに返されるときに、指定した uri が返されます。URI を指定しなかった場合、URI は返されません。その点は何ですか?すでに持っているデータが必要なのはなぜですか? 確かに、それは逆に意味があります。または、名前、パス、MIME タイプなど、必要な基本データを提供するだけでもかまいません。それは難しすぎるでしょうか?

4

1 に答える 1

0

MediaScanner に通知します。スキャンが完了すると、写真がシステム データベースに追加されます。

于 2012-11-06T14:47:36.940 に答える