AndroidアプリからGoogleマップアプリを起動しようとしている非常に単純なテストコードがあります。
以下は私が試しているコードです。
final Button button = (Button) findViewById(R.id.buttonGMaps);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Uri uri = Uri.parse("geo:50.08818,14.42021?z=11");
Intent gmapsIntent = new Intent(Intent.ACTION_VIEW, uri);
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(gmapsIntent, 0);
boolean isIntentSafe = activities.size() > 0;
if(isIntentSafe)
startActivity(gmapsIntent);
}
問題は、エミュレーターからこのコードをデバッグまたは実行するたびに、queryIntentActivitiesを介してインテントが見つからないことです。
ここで何が欠けていますか?Uriオブジェクトは問題ないようで、インテント自体は適切に作成されていますが、パッケージマネージャーはインテントアクティビティの中でこれを見つけることができません。
そして、このコードが実行されているメインアクティビティからこのインテントを起動できる可能性はありますか?