コンテンツを設定しておくことで、地図やAR、その他画面で適切なコンテンツ表示が自動的に行われます。
コンテンツの設定方法は「jsonファイルから読み込み」と「javaのコードで記述」の2つがあります。
本ページの内容は、サンプルプログラム[TutorialSample.zip]に含まれています。
{ "contents": [ { "id": コンテンツID (*), "name": "コンテンツ名称" (*), "description": "コンテンツ説明文" (*), "images": { (*) "thumb": "地図やARに表示される画像のURL" (*), "picture": "コンテンツ詳細画面に表示される画像のURL" (*), "frame": "記念撮影画面に表示される画像のURL" (*) }, "attrs": { (*) "address": "住所", "bizhours": "営業時間", "tel": "電話番号", "site": "サイトURL", "email": "メールアドレス", "other": "自由コメント欄" }, "location": { (*) "lat": コンテンツの緯度, (*) "lon": コンテンツの経度 (*) } } ] }
[アプリのプロジェクトルート]/res/raw/contents.jsonサンプルプログラムTutorialSampleでも、この場所にcontents.jsonが格納されています。
// コンテンツ情報をjsonファイルから読み込む ArrayList<Content> contents = ContentLoader.readJsonFromResource(this, R.raw.contents); // 読み込んだコンテンツ情報をpicnicSDKに設定しておく PicnicContentsManager.setContents(contents);サンプルプログラムTutorialSampleでは、MainActivityのonCreateメソッドに記載されています。
{ "contents": [ { "id": コンテンツID (*), "name": "コンテンツ名称" (*), "description": "コンテンツ説明文" (*), "detailurl": "コンテンツ詳細画面で表示するHTMLのファイル名", ←コレを指定する! "images": { (*) "thumb": "地図やARに表示される画像のファイル名" (*), "picture": "コンテンツ詳細画面に表示される画像のファイル名" (*), "frame": "記念撮影画面に表示される画像のファイル名" (*) }, 省略... } ] }assetsフォルダに、コンテンツ詳細画面で表示させたいHTMLをドラッグ&ドロップします。 このようになります。
// コンテンツ一覧を自分で用意する ArrayList<Content> contents = new ArrayList<Content>(); // コンテンツを生成 Content content = new Content(); // コンテンツに対して、各情報を設定していく content.setId(1); content.setLatitude(35.562519); content.setLongitude(139.714816); content.getAttrs().setName("サンプルコンテンツ1"); content.getAttrs().setDescription("サンプルコンテンツ1の説明文です。"); content.getImages().add("file:///android_asset/contents1.png"); content.getAttrs().setImageUrl("file:///android_asset/contents1_pic.png"); content.getAttrs().setImageFrameUrl("file:///android_asset/contents1_frame.png"); // 設定が終わったコンテンツを、コンテンツ一覧に加える contents.add(content); // コンテンツ一覧をpicnicSDKに設定しておく PicnicContentsManager.setContents(contents); // あとは、picnicの各種画面を呼び出すと、設定しておいたコンテンツが画面上に表示される Intent intent = new Intent(getApplicationContext(), ARActivity.class); startActivity(intent);ただし、当チュートリアルでは、jsonファイルを用意する方式を推奨しています。