Registra a extensão do Monitor de locais com o Hub do Evento principal.
Esta é a sintaxe e o código de exemplo desta API:
Esta é a sintaxe em Java:
public static void registerExtension();
Chame esse método no onCreate
método em que você inicializa o restante do SDK do Experience Platform.
public class MobileApp extends Application {
@Override
public void onCreate(){
super.onCreate();
MobileCore.setApplication(this);
try {
PlacesMonitor.registerExtension();
} catch (Exception e) {
//Log the exception
}
}
}
Esta é a sintaxe e o código de exemplo desta API:
Esta é a sintaxe no Objetivo C:
+ (void) registerExtension;
This method should be called in the didFinishLaunchingWithOptions
delegate method of the AppDelegate
.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[ACPCore configureWithAppId:@"launch-appID"];
[ACPPlaces registerExtension];
[ACPPlacesMonitor registerExtension];
[ACPCore start:^{
// do other initialization of the SDK
}];
return YES;
}
Retorna a versão atual da extensão do Monitor de locais
Esta é a sintaxe e o código de exemplo desta API:
public static String extensionVersion();
String placesMonitorVersion = PlacesMonitor.extensionVersion();
Esta é a sintaxe e o código de exemplo desta API:
+ (nonnull NSString*) extensionVersion;
NSString *placesMonitorVersion = [ACPPlacesMonitor extensionVersion];
Comece a rastrear a localização do dispositivo e a monitorá-lo nas proximidades de Locais.
Se a autorização para usar o local do dispositivo não tiver sido concedida pelo usuário, a primeira chamada para a start
API solicitará a permissão do usuário.
Esta é a sintaxe e o código de exemplo desta API:
public static void start();
PlacesMonitor.start();
Para começar a monitorização, o serviço de localização deve ter a autorização necessária:
start
API solicitará a autorização para usar o Serviço de Locais como configurado para o aplicativo.ACPPlacesMonitorMode
. Por padrão, o monitor usa ACPPlacesMonitorModeSignificantChanges
.Se sua chamada para monitoramento de start for feita antes que o SDK termine a inicialização, ela poderá ser ignorada.
Você pode garantir que o SDK terminou a inicialização chamando start
do retorno de chamada fornecido para ACPCore::start:
.
Esta é a sintaxe e o código de exemplo desta API:
+ (void) start;
Iniciando o Monitor de locais quando o SDK estiver inicializando:
[ACPCore start:^{
[ACPPlacesMonitor start];
}];
Iniciando o Monitor de locais mais tarde na execução do aplicativo:
[ACPPlacesMonitor start];
Para de rastrear a localização do dispositivo.
Esta é a sintaxe e o código de exemplo desta API:
public static void stop();
PlacesMonitor.stop();
Esta é a sintaxe e o código de exemplo desta API:
+ (void) stop;
[ACPPlacesMonitor stop];
Use essa API para obter uma atualização imediata da localização do dispositivo. Quando você chama essa API, o dispositivo tenta determinar o local com o nível de precisão especificado. Esse processo também atualiza os POIs próximos que são monitorados pela extensão.
Esta é a sintaxe e o código de exemplo desta API:
public static void updateLocation();
PlacesMonitor.updateLocation();
+ (void) updateLocationNow;
[ACPPlacesMonitor updateLocationNow];
Você pode usar essa API para definir o tipo de permissão de localização que o usuário é solicitado e autorizado a usar para o Serviço de Locais.
Essa API define o tipo de solicitação de permissão de localização para a qual o usuário é solicitado a selecionar.
Essa API é eficaz somente para dispositivos que estão no Android 10 e superior.
Para definir o prompt de autorização apropriado a ser exibido ao usuário, chame essa API antes do PlacesMonitor.start()
. Chamar esse método, ao monitorar ativamente, atualiza o nível de permissão de local para o valor de permissão solicitado. Se o nível de autorização solicitado já for fornecido ou negado pelo usuário do aplicativo, ou se você tentar fazer o downgrade da permissão de ALWAYS_ALLOW
para WHILE_USING_APP
, esse método não terá efeito.
A permissão de local pode ser definida como um dos seguintes valores:
PlacesMonitorLocationPermission.WHILE_USING_APP
Esse valor solicita que o usuário acesse o local do dispositivo somente ao usar o aplicativo. Um aplicativo é considerado em uso quando o usuário está visualizando o aplicativo na tela do dispositivo, por exemplo, uma atividade está sendo executada em primeiro plano.
Verifique se a permissão de usuário ACCESS_FINE_LOCATION está definida no arquivo manifest do aplicativo.
PlacesMonitorLocationPermission.ALWAYS_ALLOW
Esse valor solicita que o usuário acesse o local do dispositivo mesmo quando o aplicativo está em segundo plano.
Verifique se as permissões de usuário ACCESS_BACKGROUND_LOCATION e ACCESS_FINE_LOCATION estão definidas no arquivo manifest do aplicativo.
PlacesMonitorLocationPermission.ALWAYS_ALLOW
é o valor de permissão de localização padrão.
Se o usuário do aplicativo receber a WHILE_USING_APP
permissão, as geofences não serão registradas no sistema operacional. Como resultado, a extensão do Monitor de locais não acionará eventos de entrada/saída em regiões que estão ocorrendo em segundo plano.
Esta é a sintaxe e o código de exemplo desta API:
public static void setLocationPermission(final PlacesMonitorLocationPermission placesMonitorLocationPermission)
Para solicitar a WHILE_USING_APP
permissão:
// set the location permission
PlacesMonitor.setLocationPermission(PlacesMonitorLocationPermission.WHILE_USING_APP);
// start monitoring
PlacesMonitor.start()
Para atualizar para a ALWAYS_ALLOW
permissão:
// upgrade the permission level
PlacesMonitor.setLocationPermission(PlacesMonitorLocationPermission.ALWAYS_ALLOW);
Essa API define o tipo de solicitação de autorização de localização para a qual o usuário será solicitado.
Para definir o prompt de autorização apropriado a ser exibido ao usuário, chame SetRequestAuthorizationLevel
antes de chamar [ACPPlacesMonitor start]
. Para definir o prompt de autorização apropriado a ser exibido ao usuário, chame essa API antes do [ACPPlacesMonitor start]
. Chamar esse método enquanto monitorar ativamente atualizará o nível de autorização de local para o valor de autorização solicitado. Se o nível de autorização solicitado já for fornecido ou negado pelo usuário do aplicativo ou se houver uma redução da permissão de ACPPlacesRequestAuthorizationLevelAlways
para ACPPlacesRequestAuthorizationLevelWhenInUse
autorização, esse método não terá efeito.
O nível de autorização pode ser definido como um dos seguintes valores:
ACPPlacesRequestAuthorizationLevelWhenInUse
Solicita a permissão do usuário para usar o Serviço de Locais enquanto o aplicativo estiver em uso. O prompt do usuário contém o texto da NSLocationWhenInUseUsageDescription
chave no arquivo Info.plist do aplicativo, e a presença dessa chave é necessária ao chamar esse método. Para obter mais informações, consulte a documentação da Apple na solicitaçãoWhenInUseAuthorization.
ACPPlacesRequestMonitorAuthorizationLevelAlways
Use essa enumeração para solicitar o Serviço de Locais mesmo quando o aplicativo estiver em segundo plano. Você deve ter as teclas NSLocationAlwaysUsageDescription
e NSLocationWhenInUseUsageDescription
no Info.plist do seu aplicativo. Essas teclas definem o texto que será exibido durante o prompt do usuário. Para obter mais informações, consulte a documentação da Apple na solicitaçãoAlwaysAuthorization.
ACPPlacesRequestAuthorizationLevelAlways
é o valor padrão de autorização de solicitação.
O aplicativo que autorizou o uso da ACPPlacesRequestAuthorizationLevelWhenInUse
permissão não acionará eventos de entrada/saída em regiões que estão acontecendo em segundo plano.
Esta é a sintaxe e o código de exemplo desta API:
+ (void) setRequestAuthorizationLevel: (ACPPlacesRequestAuthorizationLevel) requestAuthorizationLevel;
Para solicitar a ACPPlacesRequestAuthorizationLevelWhenInUse
permissão:
// set the request authorization level
[ACPPlacesMonitor setRequestAuthorizationLevel: ACPPlacesRequestAuthorizationLevelWhenInUse];
// start monitoring
[ACPPlacesMonitor start];
Para atualizar para a ACPPlacesRequestAuthorizationLevelAlways
autorização:
// set the request authorization level
[ACPPlacesMonitor setRequestAuthorizationLevel: ACPPlacesRequestAuthorizationLevelAlways];
O monitoramento pode ser definido para um dos seguintes valores:
ACPPlacesMonitorModeContinuous
A extensão de monitoramento recebe e processa locais com mais frequência. Essa estratégia de monitoramento consome muita energia, mas fornece maior precisão. Para obter mais informações, consulte a documentação da Apple sobre monitoramentocontínuo.
ACPPlacesMonitorModeSignificantChanges
A extensão de monitoramento só recebe e processa atualizações de localização após o dispositivo ter movido uma distância significativa do local processado anteriormente. Essa estratégia de monitoramento consome menos energia do que a estratégia de monitoramento contínuo. Para obter mais informações, consulte a documentação da Apple sobre monitoramento significativo
Esta é a sintaxe e o código de exemplo desta API:
+ (void) setPlacesMonitorMode: (ACPPlacesMonitorMode) monitorMode;
[ACPPlacesMonitor setPlacesMonitorMode:ACPPlacesMonitorModeSignificantChanges];