2

ユーザーがホーム画面またはアプリドロワーからクリックすると、特定の (システムにインストールされた) アプリ (システム設定、カレンダー、ブラウザーなど) にユーザーを送信する単純なアプリケーションを作成しようとしています。

たとえば、設定のショートカットと同じように、アプリを起動するたびにシステム設定を開こうとしています。

これを希望どおりに実装することは可能ですか? 誰か提案はありますか?

これが私のコードです:

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;


public class MainActivity extends Activity {

    public void  LaunchComponent (String packageName, String name){
        Intent i = new Intent(Intent.ACTION_MAIN);
        PackageManager manager = getPackageManager();
        i = manager.getLaunchIntentForPackage("com.sec.android.app.controlpanel");
        i.addCategory(Intent.CATEGORY_LAUNCHER);
        startActivity(i);

    }
}

現在、アプリには UI やレイアウト要素がないため、main.xml などのレイアウト ファイルはありません。必要なのは、ユーザーを別のアプリ アクティビティに送ることだけです。私はこのチュートリアル(ミッシングリンク)を使用しており、すべてのコード例を実装しましたが、理解できません.Android開発は初めてで、Javaは私の最高の言語ではありません. あらゆる批判や提案を受け入れます。

4

2 に答える 2

3

onCreate 最初のライフサイクル コールバック関数で実行できる LaunchComponent を呼び出す必要があります。

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
     LaunchComponent (packageName, name);
}

更新しました

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;


public class MainActivity extends Activity {

public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
         LaunchComponent ("com.sec.android.app.controlpanel", "abc?");
    }


public void  LaunchComponent (String packageName, String name){
    Intent i = new Intent(Intent.ACTION_MAIN);
    PackageManager manager = getPackageManager();
    i = manager.getLaunchIntentForPackage(packageName);
    i.addCategory(Intent.CATEGORY_LAUNCHER);
    startActivity(i);

}
于 2012-06-29T19:54:33.243 に答える
1

この例では、システムの目覚まし時計アプリを開くことができます。お役に立てば幸いです。アクティビティの例:

public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        PackageManager packageManager = this.getPackageManager();
        if (packageManager != null) {

            Intent AlarmClockIntent = 
                new Intent(Intent.ACTION_MAIN).addCategory(
                        Intent.CATEGORY_LAUNCHER).setComponent(
                                new ComponentName("com.android.deskclock", "com.android.deskclock.DeskClock"));

            ResolveInfo resolved = packageManager.resolveActivity(AlarmClockIntent, PackageManager.MATCH_DEFAULT_ONLY);
            if (resolved != null) {
                startActivity(AlarmClockIntent);
                finish();
                return;
            } else {
                // required activity can not be located!
            }
        }
    }
}
于 2012-06-29T20:04:36.950 に答える