{"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
\r\n\r\n \r\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
\r\n\r\n \r\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
\r\n\r\n \r\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
\r\n\r\n \r\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
\r\n\r\n \r\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
\r\n\r\n \r\n
\/\/ Your app's code<\/span><\/span>\r\nAdapty.<\/span>activate<\/span>(<\/span>this, <\/span>\"<\/span>YOUR_APP_KEY<\/span>\"<\/span>)<\/span><\/span>\r\n\r\n\/\/ Make a purchase, Adapty handles the rest<\/span><\/span>\r\nAdapty.<\/span>makePurchase<\/span>(<\/span>activity, product<\/span>)<\/span> {<\/span> result <\/span>-><\/span><\/span>\r\n\twhen<\/span> (<\/span>result<\/span>)<\/span> {<\/span><\/span>\r\n\t\tis<\/span> AdaptyResult.Success <\/span>-><\/span> {<\/span><\/span>\r\n\t\t\t\/\/ successful purchase<\/span><\/span>\r\n\t\t}<\/span><\/span>\r\n\t\tis<\/span> AdaptyResult.<\/span>Error<\/span> -><\/span> {<\/span><\/span>\r\n\t\t\t\/\/ handle the error<\/span><\/span>\r\n\t\t}<\/span><\/span>\r\n\t}<\/span><\/span>\r\n}<\/span><\/span><\/code><\/pre>\r\n<\/div>\n<\/details>\n","protected":false},"excerpt":{"rendered":"","protected":false},"featured_media":0,"parent":0,"menu_order":0,"template":"","page-builder":[],"class_list":["post-123813","sdk","type-sdk","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/adapty.io\/fr\/wp-json\/wp\/v2\/sdk\/123813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adapty.io\/fr\/wp-json\/wp\/v2\/sdk"}],"about":[{"href":"https:\/\/adapty.io\/fr\/wp-json\/wp\/v2\/types\/sdk"}],"version-history":[{"count":0,"href":"https:\/\/adapty.io\/fr\/wp-json\/wp\/v2\/sdk\/123813\/revisions"}],"wp:attachment":[{"href":"https:\/\/adapty.io\/fr\/wp-json\/wp\/v2\/media?parent=123813"}],"wp:term":[{"taxonomy":"page-builder","embeddable":true,"href":"https:\/\/adapty.io\/fr\/wp-json\/wp\/v2\/page-builder?post=123813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}