Como salvar popups do sistema (resposta USSD) em aplicativos Android como um diálogo de mensagem
USSD é uma tecnologia de comunicação que é usada para enviar texto entre um celular e um programa aplicativo (operadora de rede) na rede.
códigosUSSD são usados pelos usuários da rede para obter informações de uso da operadora atual. Os códigos USSD começam com *, precedem com números e terminam com #. Ex : *123#
Como manusear/ler/parse as mensagens USSD do popup.
Passos a implementar (ajudados por um amigo próximo)
1. Escreva uma classe chamada "XXXX"
a classe pública XXXX estende AccessibilityService {
p>public static String TAG = "XXXX";
@Override
p>public void onAccessibilityEvent(AccessibilityEvent event) {
Log.d(TAG, "onAccessibilityEvent");
String text = event.getText().toString();
if (event.getClassName().equals("android.app.AlertDialog")) {
performGlobalAction(GLOBAL_ACTION_BACK);
Log.d(TAG, text);
Intent intent = new Intent("com.times.ussd.action.REFRESH");
intent.putExtra("message", text);
// write a broad cast receiver and call sendbroadcast() from here, if you want to parse the message for balance, date
}
}
@Override
public void onInterrupt() {
}
@Override
protected void onServiceConnected() {
super.onServiceConnected();
Log.d(TAG, "onServiceConnected");
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.flags = AccessibilityServiceInfo.DEFAULT;
info.packageNames = new String[]{"com.android.phone"};
info.eventTypes = AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;
info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
setServiceInfo(info);
}
}
2. Add an entry for the above service in the manifest
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
android:resource="@xml/config_service" /> // created below
3. Create a folder 'xml' under res, and then create file named "config_service.xml" in xml folder.
android:accessibilityEventTypes="typeAllMask"
android:accessibilityFeedbackType="feedbackSpoken"
android:accessibilityFlags="flagDefault"
android:canRetrieveWindowContent="true"
android:description="Este serviço de registros pop ups enviados pela sua operadora móvel, e salva-os no aplicativo XXXX. É absolutamente seguro de usar". //declare isto em string.xml
android:notificationTimeout="100"
android:packageNames="com.times.ussd"
android:settingsActivity="com.example.android.accessibility.ServiceSettingsActivity" />
Para executar um serviço de acessibilidade, são necessárias permissões de usuário. O xml acima é usado para fornecer a descrição necessária para o usuário .
4. Agora em sua atividade, invoque isto
startService(new Intent(this, XXXX.class));
dailNumber("*111*2");
5. Inicie sua aplicação.
6. Após o lançamento, altere as configurações manualmente
Configuração->Configuração de Acessibilidade -> Você pode ver uma opção ' seu nome da aplicação'. Ligue-a. (Isto tem que ser feito como parte do fluxo da aplicação(não manual))
7. Reinicie sua aplicação, e verifique os logs, que eu escrevi na classe Service
Artigos semelhantes
- O que significa quando envio uma mensagem de texto a alguém e recebo uma mensagem a dizer bloqueio de mensagem activa?
- Um tempo de resposta de 5ms é bom para o jogo, ou devo desembolsar mais algum dinheiro para obter um tempo de resposta de 2ms?
- O que é correcto: 'Até agora, ainda não recebi resposta' ou 'Até agora, ainda não recebi resposta'?
- Como prevenir/pararar o 'erro na aplicação' popups do Airtel SIM Toolkit no meu telefone