Pregunta

Necesito abrir el código shazam (otras aplicaciones instaladas en el teléfono) si está instalado. ¿Cómo puedo verificar si shazam está instalado en un teléfono y, si está instalado, cómo puedo abrirlo desde mi aplicación? Si alguien tiene una idea, por favor ayúdenos. Gracias de antemano.

¿Fue útil?

Solución

public static ApplicationDescriptor getApplicationDescriptor(String appName) {
    try {
        int[] moduleHandles = CodeModuleManager.getModuleHandles();
        if (moduleHandles != null && moduleHandles.length > 0) {
            for (int i = 0; i < moduleHandles.length; i++) {
                ApplicationDescriptor[] applicationDescriptors = CodeModuleManager.getApplicationDescriptors(moduleHandles[i]);
                if (applicationDescriptors != null && applicationDescriptors.length > 0) {
                    for (int j = 0; j < applicationDescriptors.length; j++) {
                        if (applicationDescriptors[j].getModuleName().toLowerCase().equals(appName.toLowerCase())) {
                            return applicationDescriptors[j];
                        }
                    }
                }
            }
        }
    } catch (Exception e) {
        System.out.println("error at getApplicationDescriptor" + e);
    }
    return null;
}

public static int runApplication(String appName) {
    int processId = -1;
    ApplicationDescriptor appDescriptor = getApplicationDescriptor(appName);
    if (appDescriptor != null) {
        //is not null Application installed
        processId = ApplicationManager.getApplicationManager().getProcessId(appDescriptor);
        if (processId == -1) {
            // -1 if application has no process (i.e. is not running).
            try {
                processId = ApplicationManager.getApplicationManager().runApplication(appDescriptor);
            } catch (ApplicationManagerException e) {
                e.printStackTrace();
            }
        }
    }
    return processId;
}

llamar a runApplication como

int pid=-1;
    if((pid=runApplication(appName))>-1){
            //application running
            System.out.println(appName +" runing with process id "+pid);
        }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top