Domanda:
Scoprire gli intenti che un'app utilizza internamente
Ilari Kajaste
2012-06-01 14:55:54 UTC
view on stackexchange narkive permalink

Ho un'app ( Smart Tools) composta da più sottoapp distinte. Vorrei avere una scorciatoia per una singola sottoapp, quindi non dovrei aprirla tramite il menu principale dell'app.

Sono abbastanza sicuro che l'app utilizzi alcune specifiche trasmissioni di intenti per aprire qualsiasi le sottoapp. So che Tasker può essere utilizzato per trasmettere un intento personalizzato al sistema Android. Se ho capito bene, se imito solo l'intento che il menu principale di Smart Tools utilizza per invocare la sottoapp specifica, potrei avviare la sottoapp direttamente con una scorciatoia Tasker.

Ma per questo, devo essere in grado per imitare l'intento. Dato che Smart Tools non è open source, come faccio a sapere quale intento utilizza l'app "internamente"?

Cinque risposte:
#1
+5
ce4
2012-07-02 00:27:21 UTC
view on stackexchange narkive permalink

Soluzione più semplice: chiedi allo sviluppatore!

Motivo: è la fonte più affidabile se risponde. Non puoi dire facilmente quali parametri impostare e se è anche consentito avviare altre attività dal tuo "intent launcher" (sia esso Tasker o qualcos'altro).

Ho dato una rapida occhiata a questo, è un app a pagamento e un piccolo dev. Spesso questi sviluppatori si preoccupano davvero e rispondono rapidamente, soprattutto se si tratta di un'app a pagamento. L'ho fatto con Titanium Backup in passato e sono rimasto positivamente sorpreso dalla facilità con cui è stato.

Se disponi delle informazioni, puoi anche utilizzare l'app gratuita Scorciatoie manuali intenti per creare un launcher personalizzato.

Google Play ha un pulsante "Contatta lo sviluppatore" appena sotto la descrizione della panoramica delle (la maggior parte?) delle app. Dando uno sguardo agli strumenti intelligenti, vedrai che è lì: androidboy1 (at) gmail com

Cosa potresti fare anche tu:

UC Berkeley ha un bel progetto:
ComDroid . Uno strumento di analisi statica per identificare le vulnerabilità basate sulla comunicazione delle applicazioni

È un servizio web in cui puoi caricare il tuo .apk. (Dato che fai una domanda avanzata, immagino che tu sappia come ottenere l'apk della tua app). Dopo il caricamento, cerca nell'analisi Avvio di attività dannose , queste sono le informazioni che desideri. Potresti essere fortunato a usarlo impropriamente utilizzando Tasker, ecc.

#2
+3
RvdK
2012-06-01 17:13:58 UTC
view on stackexchange narkive permalink

Devi avere il manifest.xml dell'APK. Se rinomini il .apk in .zip puoi aprirlo. Si spera che tu possa leggere il Manifest altrimenti ti serve per decompilare l'APK (molti tutorial online)

Quindi devi cercare gli Intenti che ascolta e usarli. Oppure usa il nome del componente e lancialo esplicitamente. Come farlo in Tasker mi è sconosciuto, per farlo in modo programmatico:

  Intent intent = new Intent (); intent .setComponent (new ComponentName ("com.package.name", " com.package.name.activity ")); startActivity (intent);  
apktool (http://code.google.com/p/android-apktool/) è un modo molto migliore per farlo rispetto alla decompressione. I manifesti saranno spesso in un formato binario, che apktool estrarrà.
#3
+2
Izzy
2012-07-14 01:13:33 UTC
view on stackexchange narkive permalink

Se il tuo dispositivo è rootato, puoi installare AutoRun Manager dal mercato (per cercare solo gli ascoltatori, andrà bene anche la versione gratuita). Usa la sua modalità avanzata e lì elencherà tutte le app che hanno ascoltatori (che ascoltano gli intenti). Tocca l'app che desideri esaminare e vengono visualizzati tutti i suoi ascoltatori di intenti registrati. Ora puoi anche disabilitare quelli che ti infastidiscono (ad esempio, l'ascoltatore del servizio Google Maps al cambio di rete per fare leva sulla tua posizione).

#4
+1
kyle k
2013-12-24 14:07:24 UTC
view on stackexchange narkive permalink

Vorrei utilizzare un decompilatore Dexplorer nel file manifest, avrà gli intenti utilizzati dall'app.

#5
+1
8bitme
2018-10-19 22:36:28 UTC
view on stackexchange narkive permalink

Puoi utilizzare adb per verificare quali intenti utilizza un'app. I passaggi per farlo sono:

  • Abilita opzioni sviluppatore
  • Sotto Opzioni sviluppatore attiva il debug adb
  • Collega il telefono al computer
  • Ottieni i log adb e gli intenti grep out: adb logcat | fgrep -i intent
  • Attiva l'intento sul tuo telefono
  • Esamina i registri per trovare i dettagli dell'intento


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...