{"id":123813,"date":"2024-02-26T08:56:20","date_gmt":"2024-02-26T08:56:20","guid":{"rendered":"https:\/\/wp-prod-new.adapty.io\/sdk\/android\/"},"modified":"2025-05-01T08:52:12","modified_gmt":"2025-05-01T08:52:12","slug":"android","status":"publish","type":"sdk","link":"https:\/\/adapty.io\/fr\/sdk\/android\/","title":{"rendered":"Android"},"content":{"rendered":"\n.makePurchase()<\/summary>\n
Adapty.<\/span>makePurchase<\/span>(<\/span>activity, product<\/span>)<\/span> {<\/span> result <\/span>-><\/span><\/span>\r\n when<\/span> (<\/span>result<\/span>)<\/span> {<\/span><\/span>\r\n is<\/span> AdaptyResult.Success <\/span>-><\/span> {<\/span><\/span>\r\n val info <\/span>=<\/span> result.value<\/span><\/span>\r\n \/\/NOTE: info is null in case of cross-grade with DEFERRED proration mode<\/span><\/span>\r\n val profile <\/span>=<\/span> info<\/span>?<\/span>.profile<\/span><\/span>\r\n \r\n if<\/span> (<\/span>profile<\/span>?<\/span>.accessLevels<\/span>?<\/span>.<\/span>get<\/span>(<\/span>\"<\/span>YOUR_ACCESS_LEVEL<\/span>\"<\/span>)?<\/span>.isActive <\/span>==<\/span> true<\/span>)<\/span> {<\/span><\/span>\r\n \/\/ grant access to premium features<\/span><\/span>\r\n }<\/span><\/span>\r\n }<\/span><\/span>\r\n is<\/span> AdaptyResult.<\/span>Error<\/span> -><\/span> {<\/span><\/span>\r\n val error <\/span>=<\/span> result.error<\/span><\/span>\r\n \/\/ handle the error<\/span><\/span>\r\n }<\/span><\/span>\r\n }<\/span><\/span>\r\n}<\/span><\/span><\/code><\/pre>\r\n<\/div>\n<\/details>\n\n
.identify()<\/summary>\n
\/\/ Your app's code<\/span><\/span>\r\nAdapty.<\/span>restorePurchases<\/span> {<\/span> [<\/span>weak<\/span> self] result <\/span>in<\/span><\/span>\r\n switch<\/span> result <\/span>{<\/span><\/span>\r\n case<\/span> let<\/span> .<\/span>success<\/span>(<\/span>profile<\/span>):<\/span><\/span>\r\n if<\/span> info.profile.accessLevels<\/span>[<\/span>\"<\/span>YOUR_ACCESS_LEVEL<\/span>\"<\/span>]?<\/span>.isActive <\/span>??<\/span> false<\/span> {<\/span><\/span>\r\n\t \/\/ successful access restore<\/span><\/span>\r\n }<\/span><\/span>\r\n case<\/span> let<\/span> .<\/span>failure<\/span>(<\/span>error<\/span>):<\/span><\/span>\r\n \/\/ handle the error<\/span><\/span>\r\n }<\/span><\/span>\r\n}<\/span><\/span>\r\n\r\n\r\n\r\n\r\n\r\n<\/code><\/pre>\r\n<\/div>\n<\/details>\n\n
.updateAttribution()<\/summary>\n
\/\/ Your app's code<\/span><\/span>\r\nAdapty.<\/span>identify<\/span>(<\/span>\"<\/span>YOUR_USER_ID<\/span>\"<\/span>)<\/span> {<\/span> error <\/span>-><\/span><\/span>\r\n if<\/span> (<\/span>error <\/span>==<\/span> null<\/span>)<\/span> {<\/span><\/span>\r\n \/\/ successful identify<\/span><\/span>\r\n }<\/span><\/span>\r\n}<\/span><\/span>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<\/code><\/pre>\r\n<\/div>\n<\/details>\n\n
.updateProfile()<\/summary>\n
\/\/ Your app's code<\/span><\/span>\r\nval builder <\/span>=<\/span> AdaptyProfileParameters.<\/span>Builder<\/span>()<\/span><\/span>\r\n .<\/span>with<\/span>(<\/span>\"<\/span>Profile_Parameters<\/span>\"<\/span>)<\/span><\/span>\r\n\r\nAdapty.<\/span>updateProfile<\/span>(<\/span>builder.<\/span>build<\/span>())<\/span> {<\/span> error <\/span>-><\/span><\/span>\r\n if<\/span> (<\/span>error <\/span>!=<\/span> null<\/span>)<\/span> {<\/span><\/span>\r\n \/\/ handle the error<\/span><\/span>\r\n }<\/span><\/span>\r\n}<\/span><\/span>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<\/code><\/pre>\r\n<\/div>\n<\/details>\n\n
.updateAttribution()<\/summary>\n
\/\/ Your app's code<\/span><\/span>\r\nAdapty.<\/span>updateAttribution<\/span>(<\/span>attribution, AdaptyAttributionSource.CUSTOM<\/span>)<\/span> {<\/span> error <\/span>-><\/span><\/span>\r\n if<\/span> (<\/span>error <\/span>!=<\/span> null<\/span>)<\/span> {<\/span><\/span>\r\n \/\/handle error<\/span><\/span>\r\n }<\/span><\/span>\r\n}<\/span><\/span>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<\/code><\/pre>\r\n<\/div>\n<\/details>\n\n
Exemple<\/summary>\n
\/\/ Your app's code<\/span><\/span>\r\nAdapty.<\/span>activate<\/span>