{"id":123827,"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:18","modified_gmt":"2025-05-01T08:52:18","slug":"android","status":"publish","type":"sdk","link":"https:\/\/adapty.io\/es\/sdk\/android\/","title":{"rendered":"Android"},"content":{"rendered":"\n
.makePurchase()<\/summary>\n
<\/path><\/path><\/svg><\/span>
Adapty.<\/span>makePurchase<\/span>(<\/span>activity, product<\/span>)<\/span> <\/span>{<\/span> result <\/span>-><\/span><\/span>\r\n    <\/span>when<\/span> <\/span>(<\/span>result<\/span>)<\/span> <\/span>{<\/span><\/span>\r\n        <\/span>is<\/span> AdaptyResult.Success <\/span>-><\/span> <\/span>{<\/span><\/span>\r\n            val info <\/span>=<\/span> result.value<\/span><\/span>\r\n            <\/span>\/\/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        <\/span><\/span>\r\n            <\/span>if<\/span> <\/span>(<\/span>profile<\/span>?<\/span>.accessLevels<\/span>?<\/span>.<\/span>get<\/span>(<\/span>"<\/span>YOUR_ACCESS_LEVEL<\/span>"<\/span>)?<\/span>.isActive <\/span>==<\/span> <\/span>true<\/span>)<\/span> <\/span>{<\/span><\/span>\r\n                <\/span>\/\/ grant access to premium features<\/span><\/span>\r\n            <\/span>}<\/span><\/span>\r\n        <\/span>}<\/span><\/span>\r\n        <\/span>is<\/span> AdaptyResult.<\/span>Error<\/span> <\/span>-><\/span> <\/span>{<\/span><\/span>\r\n            val error <\/span>=<\/span> result.error<\/span><\/span>\r\n            <\/span>\/\/ handle the error<\/span><\/span>\r\n        <\/span>}<\/span><\/span>\r\n    <\/span>}<\/span><\/span>\r\n}<\/span><\/span><\/code><\/pre><\/div>
\n<\/details>\n\n
.identify()<\/summary>\n
<\/path><\/path><\/svg><\/span>
\/\/ Your app's code<\/span><\/span>\r\nAdapty.<\/span>restorePurchases<\/span> <\/span>{<\/span> [<\/span>weak<\/span> self] result <\/span>in<\/span><\/span>\r\n    <\/span>switch<\/span> result <\/span>{<\/span><\/span>\r\n        <\/span>case<\/span> <\/span>let<\/span> .<\/span>success<\/span>(<\/span>profile<\/span>):<\/span><\/span>\r\n            <\/span>if<\/span> info.profile.accessLevels<\/span>[<\/span>"<\/span>YOUR_ACCESS_LEVEL<\/span>"<\/span>]?<\/span>.isActive <\/span>??<\/span> <\/span>false<\/span> <\/span>{<\/span><\/span>\r\n\t            <\/span>\/\/ successful access restore<\/span><\/span>\r\n            <\/span>}<\/span><\/span>\r\n        <\/span>case<\/span> <\/span>let<\/span> .<\/span>failure<\/span>(<\/span>error<\/span>):<\/span><\/span>\r\n            <\/span>\/\/ handle the error<\/span><\/span>\r\n    <\/span>}<\/span><\/span>\r\n}<\/span><\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span><\/code><\/pre><\/div>
\n<\/details>\n\n
.updateAttribution()<\/summary>\n
<\/path><\/path><\/svg><\/span>
\/\/ Your app's code<\/span><\/span>\r\nAdapty.<\/span>identify<\/span>(<\/span>"<\/span>YOUR_USER_ID<\/span>"<\/span>)<\/span> <\/span>{<\/span> error <\/span>-><\/span><\/span>\r\n    <\/span>if<\/span> <\/span>(<\/span>error <\/span>==<\/span> null<\/span>)<\/span> <\/span>{<\/span><\/span>\r\n        <\/span>\/\/ successful identify<\/span><\/span>\r\n    <\/span>}<\/span><\/span>\r\n}<\/span><\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span><\/code><\/pre><\/div>
\n<\/details>\n\n
.updateProfile()<\/summary>\n
<\/path><\/path><\/svg><\/span>
\/\/ 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<\/span>\r\nAdapty.<\/span>updateProfile<\/span>(<\/span>builder.<\/span>build<\/span>())<\/span> <\/span>{<\/span> error <\/span>-><\/span><\/span>\r\n    <\/span>if<\/span> <\/span>(<\/span>error <\/span>!=<\/span> null<\/span>)<\/span> <\/span>{<\/span><\/span>\r\n        <\/span>\/\/ handle the error<\/span><\/span>\r\n    <\/span>}<\/span><\/span>\r\n}<\/span><\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span><\/code><\/pre><\/div>
\n<\/details>\n\n
.updateAttribution()<\/summary>\n
<\/path><\/path><\/svg><\/span>
\/\/ Your app's code<\/span><\/span>\r\nAdapty.<\/span>updateAttribution<\/span>(<\/span>attribution, AdaptyAttributionSource.CUSTOM<\/span>)<\/span> <\/span>{<\/span> error <\/span>-><\/span><\/span>\r\n    <\/span>if<\/span> <\/span>(<\/span>error <\/span>!=<\/span> null<\/span>)<\/span> <\/span>{<\/span><\/span>\r\n        <\/span>\/\/handle error<\/span><\/span>\r\n    <\/span>}<\/span><\/span>\r\n}<\/span><\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span>\r\n<\/span><\/code><\/pre><\/div>
\n<\/details>\n\n
Ejemplo<\/summary>\n
<\/path><\/path><\/svg><\/span>
\/\/ Your app's code<\/span><\/span>\r\nAdapty.<\/span>activate<\/span>(<\/span>this, <\/span>"<\/span>YOUR_APP_KEY<\/span>"<\/span>)<\/span><\/span>\r\n<\/span>\r\n\/\/ Make a purchase, Adapty handles the rest<\/span><\/span>\r\nAdapty.<\/span>makePurchase<\/span>(<\/span>activity, product<\/span>)<\/span> <\/span>{<\/span> result <\/span>-><\/span><\/span>\r\n\t<\/span>when<\/span> <\/span>(<\/span>result<\/span>)<\/span> <\/span>{<\/span><\/span>\r\n\t\t<\/span>is<\/span> AdaptyResult.Success <\/span>-><\/span> <\/span>{<\/span><\/span>\r\n\t\t\t<\/span>\/\/ successful purchase<\/span><\/span>\r\n\t\t<\/span>}<\/span><\/span>\r\n\t\t<\/span>is<\/span> AdaptyResult.<\/span>Error<\/span> <\/span>-><\/span> <\/span>{<\/span><\/span>\r\n\t\t\t<\/span>\/\/ handle the error<\/span><\/span>\r\n\t\t<\/span>}<\/span><\/span>\r\n\t<\/span>}<\/span><\/span>\r\n}<\/span><\/span><\/code><\/pre><\/div>
\n<\/details>\n","protected":false},"excerpt":{"rendered":"","protected":false},"featured_media":0,"parent":0,"menu_order":0,"template":"","page-builder":[],"class_list":["post-123827","sdk","type-sdk","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/adapty.io\/es\/wp-json\/wp\/v2\/sdk\/123827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adapty.io\/es\/wp-json\/wp\/v2\/sdk"}],"about":[{"href":"https:\/\/adapty.io\/es\/wp-json\/wp\/v2\/types\/sdk"}],"version-history":[{"count":0,"href":"https:\/\/adapty.io\/es\/wp-json\/wp\/v2\/sdk\/123827\/revisions"}],"wp:attachment":[{"href":"https:\/\/adapty.io\/es\/wp-json\/wp\/v2\/media?parent=123827"}],"wp:term":[{"taxonomy":"page-builder","embeddable":true,"href":"https:\/\/adapty.io\/es\/wp-json\/wp\/v2\/page-builder?post=123827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}