• 締切済み

またお世話になります。android URI

なかなか私の頭で理解できるように全体的に紹介してるとこが見つからないのですが。 URIというものとコンテントプロバイダというのが、いったいどのような意味で相互に作用するのか まったくわからないのですが、ご説明願いますでしょうか(´_`;)よろしくお願いします

  • Java
  • 回答数1
  • ありがとう数3

みんなの回答

noname#161640
noname#161640
回答No.1

ContentProviderというのは、アプリ間で情報共有を行うための仕組みです。また「どの情報にアクセスするか」を指定するのにURIが用いられます。URIは、単に「あるものの在り処(場所)を示すためのもの」に過ぎません。 例えば、住所録などの情報は、ひとつのアプリで使えればいいわけではなくて、さまざまなアプリから利用できるようになっているのが望ましいでしょう。が、これが「データを保管したファイルにアクセスする」という形だと、例えば同時に複数のアプリがアクセスしたりすることによりファイルを破損したり、片方が使用中でもう片方が使えないとかいろいろ不便が生じます。そもそもAndroidの多くのデータはデータベースに保管されているので、普通のファイルアクセスのような形では利用しづらいのです。 そこで、保管されている汎用的な情報を管理し供給するための専用の仕組みとしてContentProviderが用意されています。このContentProviderは、さまざまな情報を提供できるようになっているため、アプリからは「どの情報がほしいか」を指定してやらないといけません。これにURIが用いられています。つまり、URIを使って「この情報がほしい」というのを指定すると、ContentProviderがその情報を取り出してくれる、というわけです。 自分のアプリで、外部から利用できるようにする場合も、このContentProviderを使って、「このアプリの情報は、こういうURIで公開しますよ」ということを指定してやれば、外部からそのURIで取り出せるようになります。

dellx1
質問者

お礼

早い時間にありがとうございます。 ユニークな参照用の住所みたいなのがつけられるということですね? この質問をした理由が いま本を参考にカメラアプリを起動して画像を読み込むということをやってるんですが、、 普通に写真撮影されるフォルダに表示される画像と同じ絵は入ってますが、ファイルネームはこのプログラムで指定された名前とは関係なしにIMAG00x.jpgのようになっています。 このプログラム中で指定したファイル名は関係ないんでしょうか?・・ もしくは別の場所に同じ画像があるということでしょうか;また、toastでimageviewの幅や位置を取得しようとしてるのですが全部0に表示されてます。取得方法はありますでしょうか public class testt extends Activity { Uri mPictureUri; // インスタンス変数 /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button1 = (Button) findViewById(R.id.menubutton1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { long dateTaken = System.currentTimeMillis(); String filename = "hogehoge" + System.currentTimeMillis() + ".jpg"; ContentValues values = new ContentValues(); values.put(MediaStore.Images.Media.TITLE, filename); values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); mPictureUri = getContentResolver().insert( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); Log.d("ss", filename); Intent intent = new Intent(); intent.setAction("android.media.action.IMAGE_CAPTURE"); intent.putExtra(MediaStore.EXTRA_OUTPUT, mPictureUri); startActivityForResult(intent, 1); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // super.onActivityResult(requestCode, resultCode, data); if (resultCode != RESULT_OK) { Log.d("ss", "sippairasii"); return; } if (requestCode == 1) { Log.d("ss", mPictureUri.getPath()); LinearLayout linearlayout =(LinearLayout)findViewById(R.id.layoutLoot); ImageView imageView = new ImageView(this); imageView.setImageURI(mPictureUri); linearlayout.addView(imageView); Toast.makeText(this, ""+imageView.getWidth()+";"+imageView.getHeight()+":"+imageView.getLeft(), Toast.LENGTH_LONG).show(); } }

関連するQ&A

  • 【Android】コンテントプロバイダについて

    皆様いつもお世話になります! 現在Androidアプリの勉強をしています。 コンテントプロバイダについて、ブラウザ履歴を取得べくBrowser.SEARCHES_URIを使いカーソルオブジェクトを取得したのですが、 カラム(Contact.CONTENT_URIのContacts._IDのような)がわからないため、中の値が取得できません。。 Browser.SERCHES_URIのカラムについて知っている方、ぜひご教授頂きたいです! (参考書や様々なサイトで調べたのですが、どこにも見当たらず困っています。。) 私の開発環境は ・MacOS10.6.8 ・Eclipse 4.2 ・Java 1.6.0_17 ・Android SDK Tools 21.0.1 です。 Androidに関してはとりあえず今一番新しい(2013.02.11現在)ものをインストールしました。 (あまり詳しくなくこれくらいしかわかりません>< すみません。。) 何卒宜しくお願い致します!

    • ベストアンサー
    • Java
  • 電磁気相互作用と物体の運動について

    電磁気相互作用と物体の運動について 教えて下さい。 相互作用は基本的に4つ (1)重力相互作用 (2)電磁気相互作用 (3)強い相互作用(核力) (4)弱い相互作用(β崩壊) と聞きました。 そのうち物体の運動は突き詰めると(2)の電磁 気相互作用に該当するらいしのですが? 物質の原子や分子がイオンなどの電荷が中性 でないときは電磁気的に作用することは判るの ですが、通常は電荷的に中性状態で安定して いるといいます。 それがなぜ電磁気相互作用で説明できるるの でしょうか? たとえば2個の純水の氷があって片方でもう一 方を押すと動きますが、ともに電荷は中性な はずで電磁気相互作用で説明できるのは?? ?なのですが... ある文献に外殻電子同士の「負電荷が反発する」 とありましたが、イオンでなければ電子は原子核 の正電荷と中性を保っているので安定分子は 全体として中性と認識していたものですから... よろしくお願いします。

  • 素粒子の相互作用について

    19世紀までに知られていたものは重力相互作用と電磁相互作用であったのですが、 重力相互作用と電磁相互作用以外にも相互作用が存在すると考えられたのはなぜでしょうか? また、 重力相互作用と電磁相互作用以外の相互作用として、強い相互作用と弱い相互作用の異なる2種の相互作用が存在すると考えられたのはなぜでしょうか? うまい説明の仕方が分かりません。 どなたかよろしくお願いいたします。

  • OHとCHの相互作用について

    4.OH/π,CH/π 相互作用について例をあげて説明しなさい。 5.OH/n,CH/n相互作用について例をあげて説明しなさい。   (なぜ引き合うか説明すること)  一癖ある先生の試験が迫っています。  上記の問題の意味がよくわからず、困っています。  4.と5.の違いを含めて、お願いします。  nはどうやら非共有電子対のようです…。

  • お世話になります。

    お世話になります。 「業界全体では損益分岐点を二割以上上回っている」 との文章の意味がわかりません。 数字を使ってわかりやすく説明していただきたく。 よろしくお願いいたします。 (原価計算は大学生の時に授業で学びましたが忘れております。)

  • 反強磁性的相互作用とは?

    某国立大学の大学院入試の過去問で、 反強磁性的(な)相互作用という言葉が出てくるのですが、 これはどういった意味なのでしょうか。 強磁性や反強磁性などについては文献などで理解しているつもりなのですが、 それらの相互作用というのがよく分かりません。 どなたか詳しい方、ご教授お願いします。

  • minimalな電磁相互作用とは?

    http://questionbox.jp.msn.com/qa767600.html ここのページにも書かれていますが、 電磁相互作用のない場合のハミルトニアンを H→H-eA0,p→p-eA と置きかえればいいことを意味します。この相互作用をminimalな電磁相互作用と呼んでいますが、minimalな電磁相互作用は荷電粒子がローレンツ力によって運動することを保証するものとされています。 このminimalな電磁相互作用というのが分かりません。 電磁相互作用がほとんどない状態なので最小の(minimal)という用語が使われているのだと思うのですが、 ローレンツ力は電磁相互作用ではないのでしょうか? それと電磁相互作用がない場合、このような変換を行える意味も分かりません。 どなたか教えて下さい。

  • ファンデルワールス相互作用について

    「ファンデルワールス相互作用とは中性分子間に働く相互作用の総称である。これは双極子-双極子相互作用、双極子-誘起双極子相互作用、分散力、反発力から成る」という説明から、 双極子-双極子相互作用についてわからなくなりました(>_<) (1)中性分子とは極性がない分子のことですよね? (2)双極子-双極子相互作用って極子を持つ分子どうしの話ではないのですか? 教えてもらえませんか…?(>_<)

  • テレビの走査線とは?

    「テレビの走査線は、観る人を相互に作用する参加者として引きつけます。」というテレビに関する文章を読んだのですが、意味がわかりません。どなたか理解できる方、よろしくお願いいたしますm--m!

  • レーザー関係の本の紹介

    今,レーザーの本を独学で読んでいるのですが,量子力学については入門程度のシュレーディンガー方程式の解き方くらいしか分からないので,摂動論というのが出てきて意味不明になってしまいました. 普通のシュレーディンガー方程式のハミルトニアンに電磁波中にある原子の状態を記述するのに相互作用のハミルトニアンλHiというのを加えたりしているのですが,もうやってる事が意味不明で…ほとんど理解できていません. こういった事をしっかり理解するためにはどのような本を読めばよいのでしょうか? お勧めの物がありましたらご紹介お願いします.

専門家に質問してみよう