picnic SDK をアプリにインポートすることで、地図やARなどの様々な機能を利用することができます。
次の手順で、picnic SDK をアプリにインポートすることができます。
(picnic SDKのファイル(picnic_v1.1.0.aar)は、事前に所定の場所からDLしておいてください。)
※本手順を全て行った状態のサンプルソースコードは[こちら]になります。
Application nameに「TameshiApp」、Company nameに「example.com」と入れ、Project locationの右にある「…」ボタンをクリックします。
ダイアログが表示されるので、「C:¥」を選択した状態で「New Folder」のボタンをクリックします。
ダイアログが出てきます。
「C:¥AndroidStudioProjects」を選択した状態でOKボタンをクリックします。
Nextボタンをクリックします。
Phone and TableがチェックONになっており、「API 15: Android 4.0.3(IceCreamSandwich)」が選ばれている状態にしてNextボタンをクリックします。
「Empty Activity」を選んでNextボタンをクリックします。
そのままFinishを押します。
起動時にこちらのダイアログが出てきたら、「Show Tips on Startup」のチェックを外してからCloseボタンをクリックします。
Android Studioが開かれました。
「Import .JAR/.AAR Package」を選んでNextボタンをクリックします。
「File name」の右にある「…」ボタンをクリックし、事前に入手しておいたpicnic SDKファイル(picnic_v1.1.0.aar)を選択してください。
このような表示になったら、Finishボタンをクリックします。
「targetSdkVersion」という項目を 15 に変更します。
「dependences」に2つの項目を追記します。// ↓この2つを追記する
compile 'com.google.android.gms:play-services:7.3.0'
compile project(':picnic_v1.1.0')
しばらく待ちます。画面下部にプログレスバーが表示されます。
しばらく待つと処理が完了します。
「New > Java Class」を開きます。
Nameを「App」、Kindを「Class」にしてOKボタンをクリックします。
「App」クラスが追加されました。
「App」クラスで「Picnic」クラスを継承します。public class App extends Picnic { ... }
このようにimportが追加されたら成功です。
import me.picnicapp.sdk.picnic.Picnic;
SDKの初期化処理を行うために必要なinitializePicnicメソッドを追加します。
initializePicnicメソッドが追加されました。
initializePicnicメソッド内で、アプリキーを設定します。setApplicationKey("your_api_key");
「app > manifests > AndroidManifest.xml」を開きます。
applicationノード内に、「android:name=".App"」を追加します。
picnic SDKを利用するために必要な宣言を、マニフェストファイルに記述します。<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.tameshiapp">
<!-- ■ここから■ [1] picnic SDKで必要なパーミッション -->
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- ■ここまで■ [1] picnic SDKで必要なパーミッション -->
<application
android:name=".App"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- ■ここから■ [2] picnic SDKで必要な記述 -->
<activity
android:name="me.picnicapp.sdk.ar.ARActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" />
<activity
android:name="me.picnicapp.sdk.map.MapActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar" />
<activity
android:name="me.picnicapp.sdk.contentdetail.ContentListActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar" />
<activity
android:name="me.picnicapp.sdk.contentdetail.ContentDetailActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar" />
<activity
android:name="me.picnicapp.sdk.framecamera.FrameCameraActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" />
<activity
android:name="me.picnicapp.sdk.framecamera.PicturePreviewActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" />
<activity
android:name="me.picnicapp.sdk.activity.WebViewActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" />
<!-- ■ここまで■ [2] picnic SDKで必要な記述 -->
<!-- ■ここから■ [3] picnic SDKで必要な GoogleMap利用の記述 -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<!-- ■ここまで■ [3] picnic SDKで必要な GoogleMap利用の記述 -->
<!-- ■ここから■ [4] picnic SDKで必要な GoogleMapのAPIキー -->
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyD_fvacAmyreopHc7x7UVdnB9rK6ZqInN0" />
<!-- ■ここまで■ [4] picnic SDKで必要な GoogleMapのAPIキー -->
</application>
</manifest>
「App > java > com.example.tameshiapp > MainActivity」を選択します。
onCreateメソッド内に、お試しとしてAR画面を呼び出すコードを記述してみます。
// AR画面を呼び出す Intent intent = new Intent(getApplicationContext(), ARActivity.class); startActivity(intent);
青い吹き出しが出てきたら、「Alt+Enter」キーを押します。
しばらく待つと、ダイアログが表示されます。
この画面で、アプリを実行させるための仮想Android端末を作成します。
Categoryで「Phone」、Nameで「NexusS」を選んでNextボタンをクリックします。
RecommendedタブのRelease Name「Marshmallow」、API Level「23」、ABI「x86」、Target「GoogleAPIs」を選び、Nextボタンをクリックします。
左下の「Show Advanced Settins」ボタンをクリックします。
以下のように設定します。
右上の✕ボタンを押します。
「Available Emulators」で、先ほど作成した仮想Android端末「Nexus S API 23」を選んでOKボタンをクリックします。
仮想Android端末が立ち上がります。しばらく待ちます。


