Hola, en mi pregunta anterior hacía referencia de implementar Barcode sin usar otra app.
He decidido haceelo de las 2 maneras: Dentro de la app implementado y haciendo uso de una tercera aplicación.
Para eso necesita checa si está instalada la app, si no lo está, debe de mandar a la Play Store para descargarla, lo tengo así:
package com.appco.sample_projecta;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Context co;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Método Probar()", Toast.LENGTH_LONG).show();
probar();
}
});
}
public void probar() {
boolean installed = appInstalledOrNot("com.google.zxing.client.android");
if (installed) {
/*Revisa si está instalado*/
Intent LaunchIntent = getPackageManager()
.getLaunchIntentForPackage("com.google.zxing.client.android");
startActivity(LaunchIntent);
Toast.makeText(this, "Si está instalado", Toast.LENGTH_LONG).show();
} else {
System.out.println("No");
Toast.makeText(this, "No está instalado", Toast.LENGTH_LONG).show();
aaa();
}
}
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
boolean app_installed;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
app_installed = true;
}
catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed;
}
//Aquí abre la Play Store para descargar, pero no me funciona :(
private void aaa(){
final String appPackageName = getPackageName();
try {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}
}
}
Al momento entrar a la playstore dice: "No se encontró el elemento, intentar nuevamente".
Si me pueden ayudar a mejorar el código o alguna sugerencia, muchas gracias.