私の質問はとても簡単です:どのようにsp_session_reloginが動作していますか?sp_session_relogin(libspotify)の使用に失敗しました
ここで私はそれをどのように使用しようとしています。
bool login(const char* login, const char* password, bool remember)
{
if (remember) {
sp_error err = sp_session_relogin(_session);
if (err==SP_ERROR_OK) {
return true;
}
if (!login||!password) {
return false;
}
}
sp_session_login(_session, login, password, remember, NULL);
return true;
}
と私は自分のアプリケーション私が最初に
login(0,0,true);
を呼び出し、それがfalseを返した場合、私は(UIから取得されたユーザ名とパスワード)この
login(username,password,true);
ようにそれを思い出してください。 それから私はかなりのアプリケーションとそれをrelaunchedログインへの最初の呼び出しがfalseを返し続けます。
編集はiKenndacからの回答
た後、私は(sp_session_logoutを呼んでいた)が、私はと呼ばれているログアウト・コールバックを待っていませんでした。私はそれを持っていたが、それは良くない。ここ は、私のアプリケーションが
if (_session) {
if (_loggedin) {
char buffer[1024];
int ret = sp_session_remembered_user(_session,buffer,sizeof(buffer));
if (ret>0) {
printf("remembered user: %s\n",buffer);
}
sp_session_logout(_session);
int msTilNext = 0;
while(_loggedin) {
sp_session_process_events(_session, &msTilNext);
}
}
sp_session_release(_session);
_session = 0;
}
sp_session_remembered_userが正しく自分のユーザー名を返す終了される方法です。ログアウト後、私はログアウトコールバックがsp_session_process_eventsで処理イベントと呼ばれるのを待っています。ログアウトコールバックが呼び出されると、_loggedinはfalseになり、ループが終了します。セッションをリリースします。そして、かなりのアプリケーション。
別の間違いや不足しているものがありますか?何か案が ?
ありがとうございました。
お返事ありがとうございますが、私はまだ何かを逃したようです。ログアウトしてアプリケーションを終了する方法を説明する質問を更新しました。 –
あなたのビバがプレーヤーを見つけました...私はそれを見て、私が逃しているものを理解しようとしますが、現時点では私は見つかりませんでした。私が最初に(私が再ログインしようとするとき)、最後に(私がログアウトしているときに)紛失しているかどうかはわかりません。 –
問題が見つかりました。設定フォルダに既存のディレクトリが含まれていないため、設定フォルダを作成できないということだけです。私はパスとすべてのディレクトリを作成し、今は大丈夫です。もう一度iKenndacに感謝します。 –