0

カスタムランチャーがあり、サードパーティのアプリケーションを起動するためのボタンを追加したい場合があります。これを行うには、アプリのパッケージ名が必要です。これは簡単に見つけることができますが、アプリのメインアクティビティまたは開始アクティビティも必要です。これを使用して、アプリに渡すインテントを作成します。

たとえば、Skypeを起動するインテントを作成するには、次のコマンドを使用します。

`new Intent().setComponent(new ComponentName("com.skype.raider", "com.skype.raider.Main"))

グーグルで主な活動の名前を見つけることができましたが、Skypeは人気のあるアプリなので、やがて登場しました。

APKがあれば、それを開いてandroidmainifestを見ることができますが、一部のアプリのAPKを取得する方法がまったくわかりません。たとえば、このアプリをGooglePlayから起動したいと思います。パッケージ名は表示com.dbapp.android.mediahouseされますが、メインアクティビティの名前を取得する方法がわかりません(.MAINを試しました)。

Google PlayからAPKを取得できると思われるChrome拡張機能apkダウンローダーを確認しましたが、機能しなくなったようです。

カスタムランチャーからサードパーティのアプリを起動することはかなり一般的であるに違いないことを私は知っていますが、検索しても答えが見つかりません。

人々は通常、この問題をどのように処理しますか?Google PlayストアからAPKを入手しますか?入手した場合、どのように入手しますか?繰り返しになりますが、マニフェストを読むことでアクティビティを取得できることは知っていますが、多くの場合、APK自体を取得する方法がわかりません。どんなアドバイスでも大歓迎です、ありがとう!

4

3 に答える 3

3

ランチャーは、とを使用して、デバイス上のアプリによってアドバタイズされたMAIN/アクティビティを見つける必要があります。このようなランチャーを実装するサンプルアプリを次に示します。LAUNCHERPackageManagerqueryIntentActivities()

PackageManager pm=getPackageManager();
Intent main=new Intent(Intent.ACTION_MAIN, null);

main.addCategory(Intent.CATEGORY_LAUNCHER);

List<ResolveInfo> launchables=pm.queryIntentActivities(main, 0);

次に、それを使用して、、などList<ResolveInfo>で使用可能なアクティビティを表示します。ListViewGridView

于 2013-01-02T15:59:47.937 に答える
1

PackageManager、必要なものを正確に取得する方法を提供します。

PackageManager.getLaunchIntentForPackage(String packageName)
于 2013-01-02T16:33:45.760 に答える
0

使用できますIntent intent = new Intent(android.content.Intent.MAIN);

または、背後の例のように、マップを起動してURIを解析します。

String uri = "http://maps.google.com/maps?saddr=" + Utils.getLatitude(ShowDetails.this)+","+Utils.getLongitude(ShowDetails.this)+"&daddr="+userLatitude+","+userLongitude;
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri));
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);
于 2013-01-02T15:57:55.060 に答える