{"id":305,"date":"2016-07-29T10:48:01","date_gmt":"2016-07-29T02:48:01","guid":{"rendered":"https:\/\/antijava.prjlife.com\/?p=305"},"modified":"2016-07-29T10:54:14","modified_gmt":"2016-07-29T02:54:14","slug":"onesignal-push-notification-with-android-studio-practice-log","status":"publish","type":"post","link":"https:\/\/antijava.prjlife.com\/?p=305","title":{"rendered":"OneSignal Push Notification with Android Studio practice log"},"content":{"rendered":"<p>It took me one night to make it work, so I&#8217;d like to write it down for next time.<\/p>\n<p><strong>Main Flow as follow diagram:<\/strong><\/p>\n<p><a href=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/MainFlowchart.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-306\" src=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/MainFlowchart-300x224.png\" alt=\"MainFlowchart\" width=\"300\" height=\"224\" srcset=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/MainFlowchart-300x224.png 300w, https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/MainFlowchart.png 723w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Green fields means &#8220;what values you can get&#8221;<\/p>\n<p>White fields means &#8220;what values you should set&#8221;<\/p>\n<p>And following are screeshots for each steps<\/p>\n<p><strong>1.Google Developer Console (GCM)<\/strong><\/p>\n<p>Get these two values.<\/p>\n<p><a href=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/GoogleDeveloperConsole.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-307\" src=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/GoogleDeveloperConsole-300x184.png\" alt=\"GoogleDeveloperConsole\" width=\"300\" height=\"184\" srcset=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/GoogleDeveloperConsole-300x184.png 300w, https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/GoogleDeveloperConsole-768x472.png 768w, https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/GoogleDeveloperConsole.png 998w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>2.Set the Server API Key in OneSignal<\/strong><\/p>\n<p>Set\u00a0 OneSignal\u300cServer API Key\u300dto \u300cServer API Key\u300din Step 1<\/p>\n<p><a href=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/OneSignal_ServerAPIKEY.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-308\" src=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/OneSignal_ServerAPIKEY-300x162.png\" alt=\"OneSignal_ServerAPIKEY\" width=\"300\" height=\"162\" srcset=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/OneSignal_ServerAPIKEY-300x162.png 300w, https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/OneSignal_ServerAPIKEY-768x415.png 768w, https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/OneSignal_ServerAPIKEY.png 773w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>3.Set the Project number in Android Studio MainFest.xml (onesignal_google_project_number)<\/strong><\/p>\n<p>Set the onesignal_google_project_number to \u300cSender ID\u300din Step 1<\/p>\n<p><a href=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/AndroidStudio_bundlegradle_app.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-309\" src=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/AndroidStudio_bundlegradle_app-300x96.png\" alt=\"AndroidStudio_bundlegradle_app\" width=\"300\" height=\"96\" srcset=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/AndroidStudio_bundlegradle_app-300x96.png 300w, https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/AndroidStudio_bundlegradle_app.png 632w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>4.Onesignal (App Settings -&gt; Keys &amp; IDs)<\/strong><\/p>\n<p>Get these values.<\/p>\n<p><a href=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/OneSignal_appid.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-310\" src=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/OneSignal_appid-300x110.png\" alt=\"OneSignal_appid\" width=\"300\" height=\"110\" srcset=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/OneSignal_appid-300x110.png 300w, https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/OneSignal_appid-768x282.png 768w, https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/OneSignal_appid.png 811w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>5.Set the OneSignal App ID in Android Studio MainFest.xml (onesignal_app_id)<\/strong><\/p>\n<p>Set the onesignal_app_id to \u300cOneSignal App ID\u300din Step 4<\/p>\n<p><a href=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/AndroidStudio_bundlegradle_app-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-311\" src=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/AndroidStudio_bundlegradle_app-1-300x96.png\" alt=\"AndroidStudio_bundlegradle_app\" width=\"300\" height=\"96\" srcset=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/AndroidStudio_bundlegradle_app-1-300x96.png 300w, https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/AndroidStudio_bundlegradle_app-1.png 632w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>6.Include libraries in Android Studio<\/strong><\/p>\n<p>This is according to the <a href=\"https:\/\/documentation.onesignal.com\/v2.0\/docs\/android-studio-sdk-installation\">OneSignal document<\/a><\/p>\n<p><a href=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/AndroidStudio_bundlegradle_app_dependencies.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-312\" src=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/AndroidStudio_bundlegradle_app_dependencies-300x72.png\" alt=\"AndroidStudio_bundlegradle_app_dependencies\" width=\"300\" height=\"72\" srcset=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/AndroidStudio_bundlegradle_app_dependencies-300x72.png 300w, https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/AndroidStudio_bundlegradle_app_dependencies.png 477w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Basically this is all you have to do to send push notification to Android devices via OneSignal and Android Studio.<\/p>\n<p>By the way, I used to use the CUrl script provided by OneSignal to test sending notification, here&#8217;s a sample for your reference.<\/p>\n<p><strong>7.CUrl script<\/strong><\/p>\n<p>There are two fields to be set.<\/p>\n<p>\u300cAuthorization Basic\u300d : set to \u300cREST API Key\u300din Step 4<\/p>\n<p>\u300capp_id\u300d: set to \u300cOneSignal App ID\u300din Step 4<\/p>\n<p><a href=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/Curl_CommandLine.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-313\" src=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/Curl_CommandLine-300x80.png\" alt=\"Curl_CommandLine\" width=\"300\" height=\"80\" srcset=\"https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/Curl_CommandLine-300x80.png 300w, https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/Curl_CommandLine-768x204.png 768w, https:\/\/antijava.prjlife.com\/wp-content\/uploads\/2016\/07\/Curl_CommandLine.png 975w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>That&#8217;s all, happy pushing !!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It took me one night to make it work, so I&#8217;d like to write it down for next time. Main Flow as follow diagram: Green fields means &#8220;what values you can get&#8221; White fields means &#8220;what values you should set&#8221; &hellip; <a href=\"https:\/\/antijava.prjlife.com\/?p=305\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[57],"tags":[58,65,63,64,61,59,60,62],"class_list":["post-305","post","type-post","status-publish","format-standard","hentry","category-android","tag-android","tag-gcm","tag-key","tag-mismatch","tag-notification","tag-onesignal","tag-push","tag-studio"],"_links":{"self":[{"href":"https:\/\/antijava.prjlife.com\/index.php?rest_route=\/wp\/v2\/posts\/305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/antijava.prjlife.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/antijava.prjlife.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/antijava.prjlife.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/antijava.prjlife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=305"}],"version-history":[{"count":0,"href":"https:\/\/antijava.prjlife.com\/index.php?rest_route=\/wp\/v2\/posts\/305\/revisions"}],"wp:attachment":[{"href":"https:\/\/antijava.prjlife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/antijava.prjlife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/antijava.prjlife.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}