Configurando o projeto
Configurando o Projeto
O download das dependências é realizado via Maven, como configurado abaixo.
// No arquivo build.gradle(.kts) do projeto, apontar:
allprojects {
repositories {
google()
mavenCentral()
mavenLocal()
maven {
url = uri("https://maven.pkg.github.com/getzoop/zoop-package-public")
credentials {
username = "MyCompanyGH" // Seu usuário do GitHub.
password = "github_pat_..." // Sua PAT do GitHub.
}
}
}
}
Adicione a dependência do plugin de acordo com o(s) modelo(s) de SmartPOS suportados pelo seu projeto.
dependencies {
// Sendo X.Y.Z a versão desejada.
implementation("br.zoop.pos.plugin:smartpos-gertec-gpos720:X.Y.Z") // Para a Gertec GPOS720
implementation("br.zoop.pos.plugin:smartpos-pax-a910:X.Y.Z") // Para a Pax A910/A910S
implementation("br.zoop.pos.plugin:smartpos-tectoy-t4:X.Y.Z") // Para a Tectoy T4
}
Informação
A GitHub personal access token (PAT) usada deve possuir no mínimo permissão para ler e obter pacotes/artefatos de repositórios públicos.
Dica
Caso você tenha dúvidas a respeito da GitHub PAT, acesse a página de nosso repositório público. Já no README
, apresentamos um guia para orientá-lo sobre como gerar uma GitHub PAT e quais permissões conceder a ela.
Dependências
Adicione ao arquivo build.gradle(.kts)
a nível de módulo:
android {
packagingOptions {
jniLibs {
useLegacyPackaging = true
}
}
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-reflect:1.9.0")
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.3.0")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1")
implementation("com.squareup.okhttp:okhttp:2.5.0")
implementation("com.squareup.okhttp3:okhttp:4.10.0")
}
Marque no manifest: android:extractNativeLibs="true"
.
Informação
Se você estiver utilizando dispositivos Android com API inferior a 26, será necessário usar o plugin do Android Gradle 4.0 ou versão mais recente e habilitar o recurso de core library desugaring.
Kotlin
android {
defaultConfig {
// Required when setting minSdkVersion to 20 or lower
multiDexEnabled = true
}
compileOptions {
// Flag to enable support for the new language APIs
// For AGP 4.1+
isCoreLibraryDesugaringEnabled = true
// For AGP 4.0
// coreLibraryDesugaringEnabled = true
// Sets Java compatibility to Java 8
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
dependencies {
// For AGP 7.4+
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.3")
// For AGP 7.3
// coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.2.3")
// For AGP 4.0 to 7.2
// coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.1.9")
}
Groovy
android {
defaultConfig {
// Required when setting minSdkVersion to 20 or lower
multiDexEnabled true
}
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
// For AGP 7.4+
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
// For AGP 7.3
// coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.3'
// For AGP 4.0 to 7.2
// coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.9'
}
Permissões
São necessárias as seguintes permissões:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Algumas permissões necessitam de aprovação do usuário, como ACCESS_FINE_LOCATION
e READ_PHONE_STATE
. Para mais informações, consulte a documentação oficial.
Neste caso, é necessário solicitar as permissões em tempo de execução. Para isso, você pode adicionar o seguinte código no seu Activity antes da inicialização do plugin:
class MainActivity : AppCompatActivity() {
private val requestReadPhoneState =
registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted ->
if (granted) {
initPlugin()
} else {
showPermissionRequiredDialog()
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if (ContextCompat.checkSelfPermission(
this, Manifest.permission.READ_PHONE_STATE
) == PackageManager.PERMISSION_GRANTED) {
initPlugin()
} else {
requestReadPhoneState.launch(Manifest.permission.READ_PHONE_STATE)
}
}
}
Após esse passo, você estará pronto para consumir os serviços do plugin, seguindo para inicialização.