2

だから私はものをダウンロードしていて、それがダウンロードマネージャーの仕組みなので、組み込みのダウンロードアプリに入れられます。組み込みのダウンロードアプリを開くボタンをクリックしてもらいたいだけです。ここに私の試みがあります:

btnDownloads.setOnClickListener(new Button.OnClickListener(){
    public void onClick(View v) {
        PackageManager pakMan=MainActivity.context.getPackageManager();
        Log.d("bebr", "Making pak");
        if(pakMan!=null){
            Intent downloadsIntent=new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER).setComponent(new ComponentName("com.android.downloads","com.android.downlods.Downloads"));
            ResolveInfo resolved=pakMan.resolveActivity(downloadsIntent, PackageManager.MATCH_DEFAULT_ONLY);
            Log.d("bebr","Resolving");
            if(resolved!=null){
                Log.d("bebr", "Starting");
                startActivity(downloadsIntent);
            }
        }
    }
});

わかりました最終的に解決策を得ることができました:

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity(LaunchIntent);
4

2 に答える 2

0

ダウンロード アプリケーションを起動するには、パッケージ名を知っている必要があります。すべてのデバイスで同じかどうかはわかりません (そうかもしれませんが)。Logcat を監視して起動すると、ログにパッケージ名を含む行が表示されるはずです。

ただし、ダウンロード アプリを完全にスキップして、パッケージ インストーラーを直接起動することができます (これは、ユーザーがダウンロード アプリで apk を選択したときに発生します)。

次のスニペットにファイルへのパスを入力するだけです。

File appFile = new File("/path/to/your/file.apk");
Uri packageURI = Uri.parse("file:/"+ appFile.getAbsolutePath());
Intent installIntent = new Intent(Intent.ACTION_VIEW);
installIntent.setDataAndType(Uri.fromFile(appFile),"application/vnd.android.package-archive");
startActivity(installIntent);
于 2012-07-05T03:46:44.797 に答える