J'ai un problème très étrange avec mon application Android. En bref, mon application utilise un récepteur qui écoute des SMS à partir d'un certain nombre, si le téléphone reçoit un SMS de ce numéro, il devrait jouer des sons différents et vibrer dans un modèle spécifique, il devrait également commencer une autre activité.L'activité de démarrage ne fonctionne pas sur certains périphériques réels
Cela fonctionne comme prévu sur l'émulateur avd, mais il ne fonctionne pas sur tous les vrais appareils Android. Par exemple. cela ne fonctionne pas, quand il devrait commencer l'activité c'est juste l'affichage d'un écran noir, l'application ne plante pas, montre juste un écran totalement noir. D'autre part, sur mes amis téléphone la même application fonctionne comme il se doit, à part que nous avons différents fournisseurs sur les appareils que nous n'avons pas la même version Android, j'ai 2.3.3 et mon ami a 2.3. 5 Je ne pense pas vraiment que ce soit le problème, mais FYI.
J'ai connecté mon périphérique à Eclipse et j'ai effectué un débogage, mais je ne trouve pas le problème. Je ne sais pas si ça aide mais ci-dessous j'ai écrit du texte depuis le Logcat, c'est l'activité ax.ha.it.smsalarm_jfbk/.AcknowledgeHandler qui ne démarre pas. J'écris aussi comment je commence l'activité.
activité Début:
if(enableAlarmAck == true && type.equals("primary")) {
Intent ackIntent = new Intent(ctx,AcknowledgeHandler.class);
ackIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(ackIntent);
}
Et le Logcat (désolé pour le grand journal):
09-02 18:59:58.183: D/SMSDispatcher(224): New SMS Message Received
09-02 18:59:58.210: D/Gsm/SmsMessage(1151): SMS SC address: +358xxxxxxxxxx
09-02 18:59:58.210: D/Gsm/SmsMessage(1151): originatingAddress.address : +358xxxxxxxxxx
09-02 18:59:58.214: D/Gsm/SmsMessage(1151): SMS SC timestamp: 1346601684000
09-02 18:59:58.214: E/Gsm/SmsMessage(1151): hasUserDataHeader : false
09-02 18:59:58.222: D/Gsm/SmsMessage(1151): messageBody : Test
09-02 18:59:58.242: V/MmsSmsProvider(224): uri=content://mms-sms/threadID?recipient=xxxxxxxxxx
09-02 18:59:58.246: V/Telephony(224): getOrCreateThreadId cursor cnt: 1
09-02 18:59:58.394: D/SmsProvider(224): insert content://sms/1467 succeeded
09-02 18:59:58.406: V/AudioPolicyManager(84): setStreamVolumeIndex() stream 3, index 15
09-02 18:59:58.406: V/AudioPolicyManager(84): setStreamVolume() for output 1 stream 3, volume 0.668344, delay 0
09-02 18:59:58.406: I/FmReceiverService(231): BrdcstReceiver onReceive ACTION: android.media.VOLUME_CHANGED_ACTION
09-02 18:59:58.406: I/FMRadioService(129): mReceiver: VOLUME_CHANGED_ACTION
09-02 18:59:58.406: I/FMRadioService(129): stream: 3
09-02 18:59:58.406: I/FMRadioService(129): volume: 15
09-02 18:59:58.406: V/AudioPolicyManager(84): setStreamVolumeIndex() stream 10, index 15
09-02 18:59:58.406: V/AudioPolicyManager(84): setStreamVolume() for output 1 stream 10, volume 0.007499, delay 0
09-02 18:59:58.410: V/AudioHardwareALSA(84): setParameters(FMRadioVol=0.0074989409)
09-02 18:59:58.410: V/AudioHardwareALSA(84): FMRadioVol = 0.007499
09-02 18:59:58.410: I/AudioHardwareALSA(84): virtual android::status_t android::AudioHardwareALSA::setFmRadioVolume(float) : Volume = [0.007499]
09-02 18:59:58.410: V/AudioPolicyManager(84): setStreamVolumeIndex() stream 9, index 15
09-02 18:59:58.410: V/AudioPolicyManager(84): setStreamVolume() for output 1 stream 9, volume 1.000000, delay 0
09-02 18:59:58.414: V/ANDROID_DRM_TEST(84): Client(27) constructor
09-02 18:59:58.414: V/ANDROID_DRM_TEST(84): Create new client(27) from pid 1151, fd=39, offset=69, length=86475, audioSessionId=31
09-02 18:59:58.414: V/ANDROID_DRM_TEST(84): setDataSource fd=39, offset=69, length=86475
09-02 18:59:58.414: V/ANDROID_DRM_TEST(84): st_dev = 45826
09-02 18:59:58.414: V/ANDROID_DRM_TEST(84): st_mode = 33188
09-02 18:59:58.414: V/ANDROID_DRM_TEST(84): st_uid = 1000
09-02 18:59:58.414: V/ANDROID_DRM_TEST(84): st_gid = 1000
09-02 18:59:58.414: V/ANDROID_DRM_TEST(84): st_size = 2418792
09-02 18:59:58.414: V/ANDROID_DRM_TEST(84): player type = 1
09-02 18:59:58.414: V/ANDROID_DRM_TEST(84): create PVPlayer
09-02 18:59:58.414: V/PlayerDriver(84): PVSuspensionState struct constructor
09-02 18:59:58.414: V/PVPlayer(84): PVPlayer constructor
09-02 18:59:58.414: V/PVPlayer(84): construct PlayerDriver
09-02 18:59:58.414: V/PlayerDriver(84): constructor
09-02 18:59:58.414: V/PlayerDriver(84): OpenCore hardware module not found
09-02 18:59:58.414: V/PlayerDriver(84): start player thread
09-02 18:59:58.414: V/PlayerDriver(84): startPlayerThread
09-02 18:59:58.414: V/PlayerDriver(84): InitializeForThread
09-02 18:59:58.414: V/PlayerDriver(84): OMX_MasterInit
09-02 18:59:58.417: V/PlayerDriver(84): OsclScheduler::Init
09-02 18:59:58.417: V/PlayerDriver(84): CreatePlayer
09-02 18:59:58.437: V/PlayerDriver(84): AddToScheduler
09-02 18:59:58.437: V/PlayerDriver(84): PendForExec
09-02 18:59:58.437: V/PlayerDriver(84): OsclActiveScheduler::Current
09-02 18:59:58.437: V/PlayerDriver(84): StartScheduler
09-02 18:59:58.437: V/PVPlayer(84): send PLAYER_SETUP
09-02 18:59:58.437: V/PlayerDriver(84): Send player code: 2
09-02 18:59:58.437: V/PlayerDriver(84): CommandCompleted
09-02 18:59:58.437: V/PlayerDriver(84): Completed command PLAYER_SETUP status=1
09-02 18:59:58.441: V/AudioSink(84): AudioOutput(31)
09-02 18:59:58.441: V/PVPlayer(84): setDataSource(39, 69, 86475)
09-02 18:59:58.441: V/ANDROID_DRM_TEST(84): [27] setAudioStreamType(3)
09-02 18:59:58.441: V/ANDROID_DRM_TEST(84): [27] prepareAsync
09-02 18:59:58.441: V/PVPlayer(84): prepareAsync
09-02 18:59:58.441: V/PVPlayer(84): data source = sharedfd://40:69:86475
09-02 18:59:58.441: V/PlayerDriver(84): Send player code: 3
09-02 18:59:58.441: V/PlayerDriver(84): handleSetDataSource
09-02 18:59:58.441: V/PlayerDriver(84): handleSetDataSource- scanning for extension
09-02 18:59:58.441: D/(84): PVFile::GetFileName
09-02 18:59:58.445: V/PlayerDriver(84): CommandCompleted
09-02 18:59:58.445: V/PlayerDriver(84): Completed command PLAYER_SET_DATA_SOURCE status=1
09-02 18:59:58.445: V/PVPlayer(84): run_init s=0, cancelled=0
09-02 18:59:58.445: V/PlayerDriver(84): Send player code: 6
09-02 18:59:58.445: V/PlayerDriver(84): release string is 2.3.3 len 5
09-02 18:59:58.449: V/PlayerDriver(84): CommandCompleted
09-02 18:59:58.449: V/PlayerDriver(84): Completed command PLAYER_INIT status=1
09-02 18:59:58.449: V/PVPlayer(84): run_set_video_surface s=0, cancelled=0
09-02 18:59:58.449: V/PVPlayer(84): run_set_audio_output s=0, cancelled=0
09-02 18:59:58.449: V/PlayerDriver(84): Send player code: 5
09-02 18:59:58.449: V/PlayerDriver(84): Create realtime output
09-02 18:59:58.449: V/PlayerDriver(84): CommandCompleted
09-02 18:59:58.449: V/PlayerDriver(84): Completed command PLAYER_SET_AUDIO_SINK status=1
09-02 18:59:58.449: V/PVPlayer(84): run_prepare s=0, cancelled=0
09-02 18:59:58.449: V/PlayerDriver(84): Send player code: 7
09-02 18:59:58.449: V/PlayerDriver(84): disable natpkt - 0
09-02 18:59:58.460: V/PlayerDriver(84): HandleInformationalEvent: 44
09-02 18:59:58.460: V/PlayerDriver(84): HandleInformationalEvent: type=44 UNHANDLED
09-02 18:59:58.460: V/ANDROID_DRM_TEST(84): [27] notify (0x3f680, 200, 1, 44)
09-02 18:59:58.460: W/MediaPlayer(1151): info/warning (1, 44)
09-02 18:59:58.460: V/PlayerDriver(84): CommandCompleted
09-02 18:59:58.460: V/PlayerDriver(84): Completed command PLAYER_PREPARE status=1
09-02 18:59:58.460: V/PlayerDriver(84): PLAYER_PREPARE complete mDownloadContextData=0x0, mDataReadyReceived=0
09-02 18:59:58.460: V/ANDROID_DRM_TEST(84): [27] notify (0x3f680, 1, 0, 0)
09-02 18:59:58.460: V/ANDROID_DRM_TEST(84): [27] setVolume(0.000000, 0.000000)
09-02 18:59:58.460: V/AudioSink(84): setVolume(0.000000, 0.000000)
09-02 18:59:58.464: V/PVPlayer(84): check_for_live_streaming s=0, cancelled=0
09-02 18:59:58.472: V/AudioSink(84): open(44100, 2, 1, 4, 31)
09-02 18:59:58.472: V/AudioPolicyManager(84): getDeviceForStrategy() from cache strategy 0, device 2
09-02 18:59:58.472: V/AudioPolicyManager(84): getOutput() stream 3, samplingRate 0, format 0, channels c, flags 0
09-02 18:59:58.472: V/AudioSink(84): setVolume
09-02 18:59:58.472: V/PlayerDriver(84): HandleInformationalEvent: 41
09-02 18:59:58.472: V/PlayerDriver(84): .... with duration = 5146 ms
09-02 18:59:58.484: I/ActivityManager(129): Starting: Intent { flg=0x10000000 cmp=ax.ha.it.smsalarm_jfbk/.AcknowledgeHandler } from pid 1151 //<--------The activity that fails to start
09-02 18:59:58.484: W/ActivityManager(129): Trying to launch ax.ha.it.smsalarm_jfbk/.AcknowledgeHandler
09-02 18:59:58.496: D/SMSDispatcher(224): BroadcastReceiver - mResultReceiver
09-02 18:59:58.496: D/SMSDispatcher(224): GcfMode :
09-02 18:59:58.496: E/SMSDispatcher(224): intent.getAction() : android.provider.Telephony.SMS_RECEIVED
09-02 18:59:58.496: D/SMSDispatcher(224): mResultReceiver : success = true
09-02 18:59:58.500: I/MediaPlayer(1151): Info (1,44)
09-02 18:59:58.562: I/Launcher(234): onResume(). mIsNewIntent : false
09-02 18:59:58.566: E/(234): onResume() check 0
09-02 18:59:58.566: V/ProgramMonitor(234): Binding::bindTaskManagerService() com.sec.androi[email protected]4056e350 com.sec.[email protected]4063cef0
09-02 18:59:58.566: E/(234): onResume() check 1
09-02 18:59:58.566: E/Launcher(234): setWindowOpaque()
09-02 18:59:58.589: E/(234): onResume() check 2, mRestoring : false
09-02 18:59:58.589: E/(234): onResume() check 3
09-02 18:59:58.589: E/(234): onResume() check 4
09-02 18:59:58.589: E/(234): onResume() check 5
09-02 18:59:58.593: I/Launcher(234): onResume() ended
09-02 18:59:58.593: I/Launcher(234): onPause()
09-02 18:59:59.148: E/DataRouter(82): [*] Received suspend/ resume event but DUN is not up so neglect
AcknowledgeHandler.onCreate:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ack);
//Shared preferences
final SharedPreferences sharedPref = this.getSharedPreferences(SmsAlarm.SHARED_PREF, Context.MODE_PRIVATE);
//Get full message as string
String fullMessage = sharedPref.getString(SmsAlarm.FULL_MESSAGE_KEY, "");
//Get acknowledge number
final String ackNumber = sharedPref.getString(SmsAlarm.ACK_NUMBER, "");
TextView messageTextView = (TextView)findViewById(R.id.fullAlarmMessage);
//Set larm text message to ui
messageTextView.setText(fullMessage);
//Find buttons and set the to button variables
Button abortButton = (Button)findViewById(R.id.abortAlarm);
Button ackButton = (Button)findViewById(R.id.acknowledgeAlarm);
//Create objects that acts as listeners to the buttons
abortButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
}
});
//Create objects that acts as listeners to the buttons
ackButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//Check if user has given any number to call, else show toast
if(!ackNumber.equals("")) {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+ackNumber));
startActivity(callIntent);
} else {
Toast.makeText(AcknowledgeHandler.this, R.string.cannotAck, Toast.LENGTH_LONG).show();
}
}
});
}
Selon le code et le logcat - l'intention de lancement est très bien. Vous semblez avoir un problème lors de la création de cette nouvelle activité. Pouvez-vous s'il vous plaît coller un code de celui-ci, ou au moins sur les méthodes Créer/Démarrer/Reprendre? Faites-vous des opérations lourdes dans onCreate? – AlexN
Thx, pour une réponse rapide! J'ai mis à jour ma question avec la méthode onCreate. L'autre méthode que la classe contient est la onPause et la seule chose qui s'y passe est qu'elle appelle super.onPause – Robert
C'est étrange, je ne vois aucun problème dans votre onCreate(). Puis-je également vous demander de vérifier si cette activité contient des blocs d'initialisation statiques/non statiques? En outre, pouvez-vous ajouter d'autres journaux LogCat? Au moins + seconde après "Essayer de lancer ax.ha.it.smsalarm_jfbk/.AcknowledgeHandler"? – AlexN