The SmartcarAuth Android SDK makes it easy to integrate with Smartcar Connect from Android.
Add the following to your application's build.gradle dependencies:
dependencies {
implementation("com.smartcar.sdk:smartcar-auth:4.1.2")
}
For Bluetooth pairing support, add the permissions to AndroidManifest.xml:
<manifest>
<!-- Request legacy Bluetooth permissions on older devices. -->
<uses-permission android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30" />
<!-- Assert that Bluetooth scan results are not used to derive
physical location information -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation"
tools:targetApi="s" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
...
</manifest>
- Instantiate a new
SmartcarAuthinstance with aSmartcarCallbackhandler:
import com.smartcar.sdk.SmartcarAuth;
import com.smartcar.sdk.SmartcarCallback;
import com.smartcar.sdk.SmartcarResponse;
SmartcarAuth smartcarAuth = new SmartcarAuth(
"your-client-id",
"your-redirect-uri",
new String[] {"read_vehicle_info", "read_odometer"},
// Create a callback to handle the redirect response
new SmartcarCallback() {
@Override
public void handleResponse(SmartcarResponse smartcarResponse) {
// Retrieve the authorization code
Log.d("SmartcarAuth", "Authorization code: " + smartcarResponse.getCode());
}
});- Launch the Smartcar Connect flow:
smartcarAuth.launchAuthFlow(getApplicationContext());Alternatively, add a click handler to any view to launch the Smartcar Connect flow.
Button connectButton = findViewById(R.id.connect_button);
smartcarAuth.addClickHandler(getApplicationContext(), connectButton);- Use the
AuthUrlBuilderfor additional configuration:
String authUrl = smartcarAuth.authUrlBuilder()
.setState("foo")
.setForcePrompt(true)
.setMakeBypass("TESLA")
.build();
// Launch Smartcar Connect with the configured parameters
smartcarAuth.launchAuthFlow(getApplicationContext(), authUrl);
// Alternatively attach a click handler
Button connectButton = findViewById(R.id.connect_button);
smartcarAuth.addClickHandler(getApplicationContext(), button, authUrl);Please use Android Studio 3.5 to develop on the Smartcar Android SDK.