2012-09-02 2 views
0

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(); 
      } 
     } 
    });  
} 
+0

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

+0

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

+0

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

Répondre

0


Vous pouvez faire quelque chose comme ce qui suit pour allumer l'écran et montrer votre activité:Mais gardez à l'esprit que vous ne faites que «réveiller l'appareil et allumer l'écran». Vous ne "déverrouillez" pas l'appareil. Lorsque vous appuyez sur la touche Retour, vous verrez l'écran de verrouillage. Essentiellement, votre activité s'allumera à l'écran et s'affichera sur l'écran de verrouillage.

Espérons que cela aide :)

Questions connexes