GuidesDiscussions
Log In
Guides

Android Integration

allprojects {
    repositories {
        maven {
            url "https://jitpack.io"
            credentials {
                username "<token provided by Siprocal>"
            }
        }
    }
}
implementation 'com.github.Digita1Reef.phoenix:<variant>:<version>'
public class MyApp extends Application { 
  @Override
  public void onCreate(){
      super.onCreate();
      SiprocalSDK.init(this);
  }
}
class App: Application() {
  override fun onCreate() {
      super.onCreate()
      SiprocalSDK.init(this)
  }
}
<application
    ...
    android:name=".MyApp"
    android:allowBackup="false"
    android:fullBackupContent="@xml/backup_descriptor"
    android:usesCleartextTraffic="true"
    ... >
    ...
</application>
-dontwarn org.slf4j.impl.StaticLoggerBinder

# Keep all classes that are marked as @Serializable
-keep @kotlinx.serialization.Serializable class * { *; }

# Keep all generated serializer companions
-keepclassmembers class * {
    kotlinx.serialization.KSerializer serializer(...);
}
-dontwarn java.lang.management.ManagementFactory
-dontwarn java.lang.management.RuntimeMXBean
-dontwarn java.lang.reflect.AnnotatedType
-dontwarn org.slf4j.impl.StaticMDCBinder
-dontwarn org.slf4j.impl.StaticMarkerBinder
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
implementation "com.github.Digita1Reef.phoenix:<variant>:<version>"  
implementation "com.github.Digita1Reef.phoenix:app-services:<version>"  
implementation "com.github.Digita1Reef.phoenix:phone-services:<version>"  
implementation "com.github.Digita1Reef.phoenix:telephony-services:<version>"
implementation("com.github.Digita1Reef.phoenix:<variant>:<version>")
implementation("com.github.Digita1Reef.phoenix:app-services:<version>")
implementation("com.github.Digita1Reef.phoenix:phone-services:<version>")
implementation("com.github.Digita1Reef.phoenix:telephony-services:<version>") 
<manifest>
<!--your code -->

    <queries>
        <intent>
            <action android:name="*" />
        </intent>
    </queries>

</manifest>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
public class App extends Application { 
  @Override
  public void onCreate(){
      super.onCreate();
      SiprocalSDKSettings siprocalSDKSettings = new SiprocalSDKSettings.Builder()
                  .setAppServices(new AppServices())//only if use app-services module 
                  .setTelephonyServices(new TelephonyServices())//only if use telephony-services module 
                  .setPhoneServices(new PhoneServices())// only if use phone-services module 
                  .build();
      SiprocalSDK.init(this, siprocalSDKSettings);
  }
}
class App: Application() {
  override fun onCreate() {
      super.onCreate()
      val siprocalSDKSettings = SiprocalSDKSettings.Builder()
          .setAppServices(AppServices()) //only if use app-services module 
          .setTelephonyServices(TelephonyServices())//only if use telephony-services module 
          .setPhoneServices(PhoneServices())// only if use phone-services module 
          .build()
      SiprocalSDK.init(this, siprocalSDKSettings)
  }
}