Quick Start
最新バージョンをダウンロード
サンプルプロジェクトを実行
PLUGのサンプルプロジェクトをAndroid Studioで実行する方法は以下のとおりです。
sample/navercafesdk-sample-android-studioフォルダ内のプロジェクトをAndroid Studioで開きます。
アプリケーションでPLUGが正常に実行されることを確認します。
1. アプリマニフェストの設定
AndroidManifest.xmlファイルに、次のようにアクセス権限とアクティビティを追加します。
1.1 PLUG SDKアクセス権限
PLUG SDKに必要なアクセス権限を追加します。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
1.2 動画録画アクセス権限
動画録画機能を使用する時に必要なアクセス権限を追加します。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!-- 必須事項 -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/> <!-- 選択事項 -->
2. 初期化
PLUG SDKが対応する言語に応じて、次のようにPLUG SDKを初期化します。
2.1 PLUG SDK初期化(韓国語のみ対応 - NAVER Cafe)
韓国語のみ対応のPLUG SDKを初期化する時は、次のような初期化オプションを設定し、init()メソッドを呼び出します。
ClientId: NAVER IDでログイン開発者センターにアプリケーションを登録し、受け取ったクライアントID
ClientSecret: NAVER IDでログイン開発者センターにアプリケーションを登録し、受け取ったクライアントシークレット
cafeId: NAVER Cafeでカフェを開設し、受け取ったCafe ID init()メソッドはPLUG SDKを初期化するメソッドです。
fpublic class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* NAVER IDでログイン開発者センターにて受け取った情報でPLUGを初期化します。
* Glinkクラスの他のメソッドを呼び出す前に、必ず初期化を先にする必要があります。
* 開発者センターのURL:https://nid.naver.com/devcenter/main.nhn
*/
final int cafeId = 28290504;
final String clientId = "197CymaStozo7X5r2qR5";
final String clientSecret = "evCgKH1kJL";
Glink.init(this, clientId, clientSecret, cafeId);
...
}
2.2 PLUG SDK初期化(外国語のみ対応 - Moot)
外国語のみ対応のPLUG SDKを初期化する時は、次のような初期化オプションを設定し、initGlobal()メソッドを呼び出します。
consumerKey:• コミュニティを開設して受け取ったコンシューマーキー(Consumer Key)
consumerSecretKey: コミュニティを開設して受け取ったコンシューマーシークレットキー(Consumer Secret Key)
cummunityNo: コミュニティを開設して受け取ったコミュニティNo(cummunityNo)
loungeNo: ラウンジを開設して受け取ったラウンジNo(loungeNo)
initGlobal() メソッドは、外国語に対応するPLUG SDKを初期化するメソッドです。
public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 提携メールを通して、提携を申請するとコミュニティIDとコンシューマーキーが取得できます。
* Glinkクラスの他のメソッドを呼び出す前に、必ず初期化を先にする必要があります。
* 提携メールアドレス:dl_plugsupport@navercorp.com
*/
final String consumerKey = "PLUGTESTKEY";
final String consumerSecretKey = "PLUGTESTSECRET";
final int cummunityNo = 1;
final int loungeNo = 58;
// グローバルコミュニティのためのPLUG初期化です。韓国内のNAVER Cafeのみを使用する時は、initGlobal()メソッドを呼び出す必要はありません。
Glink.initGlobal(this, "PLUGTESTKEY", "PLUGTESTSECRET", cummunityNo, loungeNo);
}
2.3 グローバルコミュニティと韓国内NAVER Cafeに対応するPLUGの初期化
グローバルコミュニティと韓国内NAVER Cafeにすべて対応する時は、initGlobal()メソッドとinit()メソッドでPLUGを初期化します。
次の例は、PLUGの初期化を実装した例です。
public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* NAVER IDでログイン開発者センターにて受け取った情報でPLUGを初期化します。
* Glinkクラスの他のメソッドを呼び出す前に、必ず初期化を先にする必要があります。
* 開発者センターのURL:https://nid.naver.com/devcenter/main.nhn
*/
final int cafeId = 28290504;
final String clientId = "197CymaStozo7X5r2qR5";
final String clientSecret = "evCgKH1kJL";
// 韓国内NAVER CafeのためのPLUG初期化
Glink.init(this, clientId, clientSecret, cafeId);
/**
* 提携メールを通して、提携を申請するとコミュニティIDとコンシューマーキーが取得できます。
* Glinkクラスの他のメソッドを呼び出す前に、必ず初期化を先にする必要があります。
* 提携メールアドレス:dl_plugsupport@navercorp.com
*/
final int globalCafeId = 1013329;
final String neoIdConsumerKey = "IHCd_HmSiMcXOMC37xZ8";
final String defaultChannel = "";
//グローバルコミュニティのためのPLUG初期化です。韓国内のNAVER Cafeのみを使用する時は、initGlobal()メソッドを呼び出す必要はありません。
Glink.initGlobal(this, neoIdConsumerKey, globalCafeId);
}
3. PLUG SDK 開始
初期化が完了したら、PLUG SDKを実行します。
3.1 startHome() メソッド
startHome()メソッドは、ホームタブが選択された状態でPLUG SDKを開始するメソッドです。
/**
* ホームタブで開始
*/
Glink.startHome(activity)
PLUGの開始と終了
PLUGを特定のタブが選択された状態で開始、またはNAVER PLUGを終了します。
startHome() メソッド
ホームタブが選択された状態でPLUGを始めます。
public static void startHome(Activity activity);
次の例はstartHome()メソッドを実装した例です。
/**
* ホームタブで開始
*/
Glink.startHome(activity)
stop() メソッド
PLUGの画面をすぐに閉じて、PLUGを終了します。
public static void stop(final Activity activity);
次の例はstop()メソッドを実装した例です。
/**
* PLUG終了
*/
Glink.stop(activity)
isShowGlink() メソッド
PLUG画面が開かれているか確認します。
public static boolean isShowGlink(Activity activity);
次の例はisShowGlink()メソッドを実装した例です。
/**
* PLUG画面が開かれているか確認します。
*/
Glink.isShowGlink(activity)
基本チャンネル設定
PLUGの言語別コミュニティであるチャンネルの基本チャンネルは、デバイスに設定された言語で設定されます。基本チャンネルを特定の言語に設定したい場合は、setChannelCode()メソッドを使います。
public static void setChannelCode(String channelCode);
次の例は、基本チャンネルを特定の言語に設定した例です。
Glink.setChannelCode("en");
横画面モード、縦画面モード
PLUGは横画面モードと縦画面モードのどちらも対応しています。
Android環境では別途で設定しなくても、画面の向きに合わせて、横画面モード、縦画面モードが自動で適用されます。
透明度調節PLUG画面の左上の透明度調節スライダーで透明度を調節すると、ゲームとカフェを同時に使用できます。
透明度調節スライダーの使用の有無は、setTransparentable()メソッドで設定します。
public static void setTransparentable(Activity activity, boolean isTransparentable);
isTransparentableパラメータ値をtrueに設定すると、透明度調節スライダーを使用できます(既定値:true)。
次の例は、透明度調節スライダーを使用するように実装した例です。
/**
* 透明度調節スライダーの使用の有無を設定します。
*/
Glink.setTransparentable(activity, true)
ウィジェット
ウィジェットは、PLUGの折り畳みボタンをタップすると自動で画面に表示される要素です。ウィジェットでゲーム内のどこでもPLUGを利用できます。
ウィジェットの表示
PLUGの折り畳みボタンをタップした時に、ウィジェットを表示するかは、showWidgetWhenUnloadSdk()メソッドで設定します。
public static void showWidgetWhenUnloadSdk(Activity activity, boolean show);
showパラメータの値をtrueに設定すると、PLUGウィンドウを折り畳む時にウィジェットが現れます(既定値:true)。
次の例はウィジェットが表示されるように実装した例です。
/**
* PLUGウィンドウを折り畳む時に、ウィジェットを表示するか決定します。
*/
Glink.showWidgetWhenUnloadSdk(activity, true);
ウィジェット実行
ウィジェットを実行する場合は、startWidget()メソッドを使用します。
public static void startWidget(Activity activity);
次の例は、ウィジェットを実行した例です。
/**
* ウィジェットを実行します。
*/
Glink.startWidget(activity);
ウィジェットを閉じる
ウィジェットを閉じる場合は、stopWidget()メソッドを使用します。
public static void stopWidget(Activity activity)
次の例は、ウィジェットを強制的に閉じる例です。
/**
* ウィジェットを閉じます。
*/
Glink.stopWidget(activity);
ウィジェットの基本位置の設定
ウィジェットを最初に実行する時は、画面左の中央に表示されます。ウィジェットを最初に実行する時に表示される基本位置を設定する場合は、setWidgetStartPosition()メソッドを使用します。
ただし、ユーザーがウィジェットを移動した後、ウィジェットが再び実行される時は、ユーザーが移動した最後の位置にウィジェットが表示されます。
public static void setWidgetStartPosition(Activity activity,
boolean isLeft, int heightPercentage)
次の例は、ウィジェットの基本位置を画面右側、上から20%の位置に設定した例です。
/**
* isLeft:trueであれば左側に、falseであれば右側に表示されます。
* heightPercentage:縦の位置を%で指定できます。
*/
Glink.setWidgetStartPosition(activity, false, 20);
画面キャプチャ
ウィジェットの画面キャプチャボタンをタップすると、ゲーム画面をキャプチャできます。
画面キャプチャボタン
画面キャプチャボタンをタップした時に画面をキャプチャする機能は、setOnWidgetScreenshotClickListener()メソッドに、ウィジェットの画面キャプチャボタンのクリックリスナー(OnWidgetScreenshotClickListener)を登録して実装します。
public static void setOnWidgetScreenshotClickListener(Glink.OnWidgetScreenshotClickListener onWidgetScreenshotClickListener);
次の例は、ウィジェットの画面キャプチャボタンのクリックリスナーを実装した例です。
/**
* ウィジェットの画面キャプチャボタンのクリックリスナーを設定
*/
Glink.setOnWidgetScreenshotClickListener(new Glink.OnWidgetScreenshotClickListener() {
@Override public void onScreenshotClick() {
// TODO画面キャプチャ・PLUG実行(以下はsudoコード)
String uri = screenCapture();
Glink.startImageWrite(getActivity(), "title", uri);
}
});
画面キャプチャの使用設定
setUseScreenshot()メソッドで、画面キャプチャ機能の使用の有無を設定します。
public static void setUseScreenshot(Activity activity, boolean use);
useパラメータの値をtrueに設定すると、ウィジェットに画面キャプチャボタンが表示されます(既定値:true)。
次の例は、画面キャプチャ機能を使用するように実装した例です。
/**
* 画面キャプチャ機能を使用するか決定します。
*/
Glink.setUseScreenshot(activity, true
動画録画
動画録画ボタンをタップすると、ゲーム中にゲーム画面を録画できます。
動画録画機能は、Android 5.0以上のデバイスから対応しています
アクセス権限設定
動画録画機能を使用する場合は、Androidmanifest.xmlファイルに次のようにアクセス権限を追加する必要があります。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
ウィジェットの動画録画機能の使用
ウィジェットの動画録画ボタンをタップすると、ゲーム中にゲーム画面を録画できます。
動画録画の使用設定
setUseVideoRecord()メソッドで、動画録画機能の使用の有無を設定します。
public static void setUseVideoRecord(Activity activity, boolean use);
useパラメータの値をtrueに設定すると、ウィジェットに動画録画ボタンが表示されます(既定値:true)。
Android 5.0未満のデバイスでは、useパラメータの値をtrueに設定しても、ウィジェットに動画録画ボタンが表示されません
次の例は、動画録画機能を使用するように実装した例です。
/**
* 動画録画機能を使用するか決定します。
*/
Glink.setUseVideoRecord(activity, true)
録画完了リスナー
動画録画が完了した時に処理する作業は、setOnRecordFinishListener()メソッドに録画完了リスナー(OnRecordFinishListener)を登録して実装します。
public static void setOnRecordFinishListener(OnRecordFinishListener onRecordFinishListener);
次の例は、録画完了リスナーを実装した例です。
/**
* 録画完了リスナー登録
*/
Glink.setOnRecordFinishListener(new Glink.OnRecordFinishListener() {
@Override public void onRecordFinished(String uri) {
Glink.startVideoWrite(MainActivity.this, -1, "title", "subject", uri);
}
});
ゲームの動画録画機能の使用
ゲーム開発会社で動画録画ボタンを実装し、ゲーム画面を録画できます。
動画録画の開始と終了
動画録画を開始する場合は、startRecord()メソッドを使用します。
/*
動画の録画を始めます。
*/
PlugRecordManager.startRecord(Activity activity);
動画録画を終了する場合は、stopRecord()メソッドを使用します。
/*
動画の録画を終わります。
*/
PlugRecordManager.stopRecord();
動画録画リスナー
ゲーム開発会社のボタンで動画を録画する時に発生するイベントを処理するコールバックリスナーは次のとおりです。
public interface OnRecordManagerListener {
void onStartRecord();
void onErrorRecord();
void onFinishRecord(String uri);
}
次の例は、動画録画リスナーを実装した例です。
PlugRecordManager.setOnRecordManagerListener(
new PlugRecordManager.OnRecordManagerListener() {
@Override public void onStartRecord() {
//record started
}
@Override public void onErrorRecord() {
//recording error
}
@Override public void onFinishRecord(String uri) {
//record finished
}
});
App Scheme 処理
ゲームでPLUGのホーム画面に表示されるバナー画像をタップすると、App Schemeに移動してゲーム機能を実行させることができます。
App Schemeに移動するバナー画像は、カフェの管理メニューで登録します。
App Schemeに移動するバナー画像にタッチイベントが起こった時、App Schemeを処理する機能は、setOnClickAppSchemeBannerListener()メソッドにApp Schemeリスナー(OnClickAppSchemeBannerListener)を登録して実装します。
public static void setOnClickAppSchemeBannerListener( OnClickAppSchemeBannerListener onClickAppSchemeBannerListener);
次の例は、App Schemeを処理するようにsetOnClickAppSchemeBannerListener()メソッドを実装した例です。
// App Scheme リスナー設定
Glink.setOnClickAppSchemeBannerListener(new Glink.OnClickAppSchemeBannerListener() {
@Override public void onClickAppSchemeBanner(String appScheme) {
// カフェ管理で設定したappScheme文字列をPLUGに受け渡します。
// 各appSchemeを処理するコードを実装します。
Toast.makeText(MainActivity.this, appScheme, Toast.LENGTH_LONG).show();
}
});
コールバックリスナー
コールバックリスナーを登録し、PLUGで発生するイベントを処理します。
PLUGの開始リスナー
OnSdkStartedListenerは、PLUGを開始する時に発生するイベントを処理するコールバックリスナーです。 処理する作業は、setOnSdkStartedListener()メソッドにOnSdkStartedListenerを登録して実装します。
public static void setOnSdkStartedListener(Glink.OnSdkStartedListener onSdkStartedListener);
次の例は、PLUGの開始リスナーを実装した例です。
// PLUGの開始リスナー設定
Glink.setOnSdkStartedListener(new Glink.OnSdkStartedListener() {
@Override public void onSdkStarted() {
Toast.makeText(MainActivity.this, "PLUG開始", Toast.LENGTH_LONG).show();
}
});
PLUGの終了リスナー
OnSdkStoppedListenerは、PLUGを終了する時に発生するイベントを処理するコールバックリスナーです。
処理する作業は、setOnSdkStoppedListener()メソッドにOnSdkStoppedListenerを登録して実装します。
public static void setOnSdkStoppedListener(Glink.OnSdkStoppedListener onSdkStoppedListener);
次の例は、PLUGの終了リスナーを実装した例です。
// PLUGの終了リスナー設定
Glink.setOnSdkStoppedListener(new Glink.OnSdkStoppedListener() {
@Override public void onSdkStopped() {
Toast.makeText(MainActivity.this, "PLUG終了", Toast.LENGTH_LONG).show();
}
});
App Schemeリスナー
onClickAppSchemeBannerListenerは、ゲームユーザーが、App Schemeに移動するバナー画像をタップした時に発生するイベントを処理するコールバックリスナーです。
App Schemeに関する詳細は、「App Scheme処理」をご参照ください。
処理する作業はsetOnClickAppSchemeBannerListener()メソッドにOnClickAppSchemeBannerListenerを登録して実装します。
public static void setOnClickAppSchemeBannerListener( OnClickAppSchemeBannerListener onClickAppSchemeBannerListener);
次の例は、App Schemeリスナーを実装した例です。
public static void setOnClickAppSchemeBannerListener( OnClickAppSchemeBannerListener onClickAppSchemeBannerListener)
// App Schemeリスナー設定
Glink.setOnClickAppSchemeBannerListener(new Glink.OnClickAppSchemeBannerListener() {
@Override public void onClickAppSchemeBanner(String appScheme) {
// カフェ管理で設定したappScheme文字列をPLUGから受け渡します。
// 各appSchemeを処理するコードを実装します。
Toast.makeText(MainActivity.this, appScheme, Toast.LENGTH_LONG).show();
}
});
カフェ登録リスナー
OnJoinedListenerは、ゲームユーザーがPLUGでカフェに登録した時に発生するイベントを処理するコールバックリスナーです。
処理する作業は、setOnJoinedListener()メソッドにonJoinedListenerを登録して実装します。
public static void setOnJoinedListener(Glink.OnJoinedListener onJoinedListener);
次の例は、カフェ登録リスナーを実装した例です。
// カフェ登録リスナー設定
Glink.setOnJoinedListener(new Glink.OnJoinedListener() {
@Override public void onJoined() {
Toast.makeText(MainActivity.this, "カフェに登録しました。", Toast.LENGTH_SHORT).show();
}
});
投稿登録リスナー
OnPostedArticleListenerは、ユーザーがPLUGで投稿を登録した時に発生するイベントを処理するコールバックリスナーです。
処理する作業は、setOnPostedArticleListener()メソッドにOnPostedArticleListenerを登録して実装します。
public static void setOnPostedArticleListener( Glink.OnPostedArticleListener onPostedArticleListener);
次の例は、投稿登録リスナーを実装した例です。
Glink.setOnPostedArticleListener(new Glink.OnPostedArticleListener() {
@Override public void onPostedArticle(int menuId, int imageCount, int videoCount) {
String message = String.format("投稿が作成されました。 (from listener, menu: %d)", menuId);
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
});
コメント登録リスナー
OnPostedCommentListenerは、ユーザーがPLUGで投稿にコメントを登録した時に発生するイベントを処理するコールバックリスナーです。
処理する作業は、setOnPostedCommentListener()メソッドにOnPostedCommentListenerを登録して実装します。
public static void setOnPostedCommentListener( Glink.OnPostedCommentListener onPostedCommentListener);
次の例は、コメント登録リスナーを実装した例です。
// コメント登録リスナー設定
Glink.setOnPostedCommentListener(new Glink.OnPostedCommentListener() {
@Override public void onPostedComment(int articleId) {
String message = String.format("コメントが作成されました。(from listener、投稿:%d)", articleId);
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
});
投票完了リスナー
OnVotedListenerは、ユーザーがPLUGで投票がある投稿の投票を完了した時に発生するイベントを処理するコールバックメソッドです。
処理する作業は、setOnVotedListener()メソッドにOnVotedListenerを登録して実装します。
public static void setOnVotedListener(Glink.OnVotedListener listener);
次の例は、投票完了リスナーを実装した例です。
// 投票完了リスナー設定
Glink.setOnVotedListener(new Glink.OnVotedListener() {
@Override public void onVoted(int articleId) {
String message = String.format("投票が完了しました。(from listener、投稿:%d)", articleId);
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
});
画面キャプチャボタンのクリックリスナー
OnWidgetScreenshotClickListenerは、ユーザーがウィジェットで画面キャプチャボタンをタップした時に発生するイベントを処理するコールバックリスナーです。画面キャプチャボタンに関しては「ウィジェット」をご参照ください。
処理する作業は、setOnWidgetScreenshotClickListener()メソッドにOnWidgetScreenshotClickListenerを登録して実装します。
public static void setOnWidgetScreenshotClickListener(Glink.OnWidgetScreenshotClickListener onWidgetScreenshotClickListener);
次の例は、画面キャプチャボタンのクリックリスナーを実装した例です。画面をキャプチャする機能をコールバックリスナーに実装すると、画面キャプチャボタンをタップした時に画面をキャプチャできます。
// ウィジェットの画面キャプチャボタンのクリックリスナーを設定
Glink.setOnWidgetScreenshotClickListener(new Glink.OnWidgetScreenshotClickListener() {
@Override public void onScreenshotClick() {
// TODO画面キャプチャ・PLUG実行(以下はsudoコード)
String uri = screenCapture();
Glink.startImageWrite(getActivity(), "title", uri);
}
});
録画完了リスナー
onRecordFinishListenerは、PLUGで動画録画が完了すると発生するイベントを処理するコールバックリスナーです。
処理する作業は、setOnRecordFinishListener()メソッドにOnRecordFinishListenerを登録して実装します。
public static void setOnRecordFinishListener(OnRecordFinishListener onRecordFinishListener);
次の例は、録画完了リスナーを実装した例です。
// 録画完了リスナー設定
Glink.setOnRecordFinishListener(new Glink.OnRecordFinishListener() {
@Override public void onRecordFinished(String uri) {
Glink.startVideoWrite(MainActivity.this, -1, "title", "subject", uri);
}
});
ゲームIDの連携
ユーザーのゲームIDとCafe IDを連携して管理できます。連携したゲームIDとCafe IDのリストは、カフェの管理メニューから確認できます。
ゲームIDをCafe IDと連携する場合は、syncGameUserId()メソッドを使用します。
public static void syncGameUserId(Activity activity, String gameUserId);
次の例は、ゲームIDとCafe IDを連携する例です。
/**
* ゲームIDとCafe IDを連携します。
*/
Glink.syncGameUserId(activity, "8263821")
テーマカラー変更
PLUGのテーマカラーを変更できます。
テーマカラーを変更する場合は、setThemeColor()メソッドを使用します。
/**
* themeColorCSString パラメータの既定値は「#00c73c」です。
* tabBackgroundColorCSSString パラメータの既定値は「#44484e」です。
* tabBackgroundColorCSSString パラメータは既定値を使用することを推奨します。
**/
public static void setThemeColor(String themeColorCSSString);
public static void setThemeColor(String themeColorCSSString, String tabBackgroundColorCSSString)
themeColorCSString: • テーマで基本的に使用する色(既定値:#00c73c)
tabBackgroundColorCSSString: タブメニューの背景色(既定値:#44484e)既定値を使用することを推奨します。
注意 : CSSカラー値にアルファ値を入れてはいけません。
次の例は、テーマカラーを変更する例です。
Glink.setThemeColor("#2e65d9");
Glink.setThemeColor("#2e65d9", "#44484e");
リソース画像変更
NAVER CafeのPLUGライブラリに含まれたリソース画像は、次のように変更できます。
NAVER CafeのPLUGライブラリファイル(.aarファイル)の圧縮を解凍します。
圧縮を解凍したフォルダの/res/drawable-xhdpiフォルダにある画像をお好きな画像に変更します。
圧縮を解凍したフォルダを再びライブラリファイル(.aarファイル)に圧縮します。
新しく圧縮したNAVER CafeのPLUGライブラリを適用し、プロジェクトをビルドします。
注意
画像を変更する時に、画像のサイズは既存の画像と同じ物を使用してください。