2017-04-09 6 views
0

すべてのアプリケーションのすべてのアクティビティを表示するアプリケーションがあります。それは

としてマルチユーザー設定の活性を示し、このアプリから上記のショートカットをクリック

com.android.settings.Settings$UserSettingsActivity

は、通常のマルチユーザ設定アクティビティを起動します。しかし、私がamやアプリケーションの意図のような他の方法から同じアクティビティを開始しようとすると、起動に失敗します。

私は、ADBから
am start com.android.settings.Settings$UserSettingsActivity
を試してみましたが、結果ログには、私も同様、

Intent intent = new Intent(); 
intent.setComponent(new ComponentName("com.android.settings.Settings", "com.android.settings.Settings.UserSettingsActivity")); 
startActivity(intent); 

まだそれが動作しないアプリケーションの意図から、それを起動しようとした

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] pkg=com.android.settings.Settings } 
Error: Activity not started, unable to resolve Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.android.settings.Settings } 

です。

私のAndroid搭載デバイスのバージョンは5.1.1のロリポップです。 助けてください。

答えて

0

次のコマンドを使用する場合:

am start com.android.settings.Settings$UserSettingsActivity 

ADBは、パッケージ名としてcom.android.settings.Settings$UserSettingsActivityを取り、com.android.settings.Settings$UserSettingsActivityは、パッケージ名ではないので(失敗したそのパッケージのための打ち上げIntentを見つけようと

あなたが特定のコンポーネントを起動したい場合は、構文は次のとおりです。

am start com.android.settings/com.android.settings.Settings$UserSettingsActivity 

あなたはパックを指定する必要があります年齢の名前とコードでこれを行うと、「/」


で区切られたクラス名:

intent.setComponent(new ComponentName("com.android.settings.Settings", "com.android.settings.Settings.UserSettingsActivity")); 

あなたはComponentNameコンストラクタに間違った引数を渡しています。コンストラクタには、パッケージ名とクラス名の2つの引数があります。これは、このようにする必要があります:

intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.Settings$UserSettingsActivity")); 

パッケージ名が「com.android.settings」とクラス名は「COMの内部クラスである「com.android.settings.Settings $ UserSettingsActivity」です。 android.settings.Settings "

関連する問題