8

Google マップ サービスが自動的に開始される仕組みを知りたいです。

メイン バッファーまたはイベント バッファーの logcat をダンプすると、Google マップのどのコンポーネントが開始されたかしかわかりませんが、「誰が」 (パッケージ)、「どのように」 (意図) を開始したかについての手がかりはありませんか?

それらを見つけるために使用できるデバッグ方法はありますか?

4

3 に答える 3

2

「どのように」を見つけることはできましたが、「誰が」についての手がかりはまだ見つかりません。

"どのように"

Run dumpsys activity servicesintentフィールドを参照してください:

* ServiceRecord{41526f40 u0 com.google.android.apps.maps/com.google.android.location.internal.server.GoogleLocationService}

  intent={act=com.google.android.location.internal.GMM_NLP}

  packageName=com.google.android.apps.maps
于 2013-02-25T14:32:45.850 に答える
0

ActivityManagerをハックとして使用して取得できます。何かのようなもの:

ActivityManager aManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RecentTaskInfo> recentTaskList = aManager.getRecentTasks(1, 0);
Intent caller = recentTaskList.get(0).baseIntent;

ここでは検証をスキップしていますが、これで開始できます。

GET_TASKS許可を忘れないでください。

于 2013-03-08T20:43:05.660 に答える
0

これがあなたの問題の解決策であることを願っています

String uri = "geo:" + 0 + "," + 0 + "?q=" + address;
                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri
                            .parse(uri));
                    startActivity(intent);
于 2013-03-04T14:21:01.313 に答える