{"id":50196563,"url":"https://github.com/gruveo/sdk-examples-android-java","last_synced_at":"2026-05-25T18:04:31.546Z","repository":{"id":91340436,"uuid":"97701845","full_name":"Gruveo/sdk-examples-android-java","owner":"Gruveo","description":"A sample app showing the usage of the Gruveo SDK for Android.","archived":false,"fork":false,"pushed_at":"2024-02-08T12:46:36.000Z","size":152,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-02-08T13:44:24.714Z","etag":null,"topics":["android","android-sdk","java","sdk","video-chat","video-conferencing","voice-chat","webrtc"],"latest_commit_sha":null,"homepage":"https://about.gruveo.com/developers/android-sdk/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gruveo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-07-19T10:03:13.000Z","updated_at":"2024-02-08T12:46:39.000Z","dependencies_parsed_at":"2024-02-08T13:53:41.281Z","dependency_job_id":null,"html_url":"https://github.com/Gruveo/sdk-examples-android-java","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Gruveo/sdk-examples-android-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gruveo%2Fsdk-examples-android-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gruveo%2Fsdk-examples-android-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gruveo%2Fsdk-examples-android-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gruveo%2Fsdk-examples-android-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gruveo","download_url":"https://codeload.github.com/Gruveo/sdk-examples-android-java/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gruveo%2Fsdk-examples-android-java/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33486790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-25T14:31:05.219Z","status":"ssl_error","status_checked_at":"2026-05-25T14:31:02.878Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-sdk","java","sdk","video-chat","video-conferencing","voice-chat","webrtc"],"created_at":"2026-05-25T18:04:03.955Z","updated_at":"2026-05-25T18:04:31.540Z","avatar_url":"https://github.com/Gruveo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Gruveo SDK Java example\n=====\n\n[![Release](https://jitpack.io/v/org.bitbucket.gruveo/gruveo-sdk-android.svg)](https://jitpack.io/#org.bitbucket.gruveo/gruveo-sdk-android)\n\nWith the Gruveo SDK, you can add video and voice calling support to your Android app, quickly. The SDK provides a ready-to-use, white-label screen with a video and voice calling interface that you can use right away.\n\nSetup\n-----\nInclude JitPack by adding the following in your project build.gradle:\n\n```\nallprojects {\n    repositories {\n        jcenter()\n        maven { url \"https://jitpack.io\" }\n    }\n}\n```\n\nAdd Gruveo SDK in your module build.gradle dependencies:\n\n```\ncompile 'org.bitbucket.gruveo:gruveo-sdk-android:{latest version}'\n```\n\nAdd the following activity in your manifest file:\n\n```\n\u003cactivity\n    android:name=\"com.gruveo.sdk.ui.CallActivity\"\n    android:configChanges=\"orientation|screenSize\"/\u003e\n```\n\nUsage\n-----\nThe snippet below showcases launching a Gruveo call screen using the `demo` client ID that limits all calls to 5 minutes. The snippet uses a token signing endpoint provided by us; you will need your own server-side signing implementation in production. See [SDK Authentication](https://about.gruveo.com/developers/android-sdk/authentication/) for details.\n\n```\nprivate static final String SIGNER_URL = \"https://api-demo.gruveo.com/signer\";\n\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n    ...    \n    new Gruveo.Builder(this)\n        .callCode(\"gruveorocks\")\n        .clientId(\"demo\")\n        .eventsListener(eventsListener)\n        .build();\n}\n    \nprivate Gruveo.EventsListener eventsListener = new Gruveo.EventsListener() {\n    @Override\n    public void requestToSignApiAuthToken(String token) {\n        try {\n            Gruveo.Companion.authorize(signToken(token));\n        } catch (IOException ignored) {\n        }\n    }\n    ...\n};\n\nprivate String signToken(String token) throws IOException {\n      RequestBody body = RequestBody.create(MediaType.parse(\"text/plain\"), token);\n      Request request = new Request.Builder()\n              .url(SIGNER_URL)\n              .post(body)\n              .build();\n\n      Response response = new OkHttpClient().newCall(request).execute();\n      return response.body().string();\n  }\n    \n```\n\nFor more advanced configuration and options, check the \u003ca href=\"https://github.com/Gruveo/sdk-examples-android-java/blob/master/app/src/main/java/com/gruveo/sdk/java/MainActivity.java\"\u003esample file\u003c/a\u003e and the [SDK documentation](https://about.gruveo.com/developers/android-sdk/).\n\nTo request production API credentials, \u003ca href=\"https://about.gruveo.com/developers/api-credentials/\"\u003eget in touch\u003c/a\u003e.\n\nRequirements\n------------\nAt least Android 4.2.x (API 17).\n\nThe Manifest.permission.RECORD_AUDIO permission is mandatory for making calls, Manifest.permission.CAMERA is needed only for video calls. However, it is all handled by the SDK, so you do not have to bother with it.\n\nThe SDK manifest file contains the following features and permisions, so you \u003cb\u003edo not\u003c/b\u003e have to add them in your project.\n\n```\n\u003cuses-feature\n    android:name=\"android.hardware.camera\"\n    android:required=\"false\"/\u003e\n\u003cuses-feature\n    android:name=\"android.hardware.camera.autofocus\"\n    android:required=\"false\"/\u003e\n\u003cuses-feature\n    android:glEsVersion=\"0x00020000\"\n    android:required=\"true\"/\u003e\n\n\u003cuses-permission android:name=\"android.permission.CAMERA\"/\u003e\n\u003cuses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/\u003e\n\u003cuses-permission android:name=\"android.permission.RECORD_AUDIO\"/\u003e\n\u003cuses-permission android:name=\"android.permission.INTERNET\"/\u003e\n\u003cuses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/\u003e\n\u003cuses-permission android:name=\"android.permission.WAKE_LOCK\"/\u003e\n\u003cuses-permission android:name=\"android.permission.VIBRATE\"/\u003e\n\u003cuses-permission android:name=\"android.permission.BLUETOOTH\"/\u003e\n```\n\nProguard\n--------\nThe SDK is minified with self-contained proguard rules, so you do not have to add any.\n\nLicense\n-------\n```\nMIT License\n\nCopyright (c) 2017 Gruveo, s.r.o.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgruveo%2Fsdk-examples-android-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgruveo%2Fsdk-examples-android-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgruveo%2Fsdk-examples-android-java/lists"}