更新:以前のコードは、エラーが含まれているため、削除されたここでの作業コードは次のとおりです。
public class InstallAPKActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ExtFilter apkFilter = new ExtFilter("apk");
File file[] = Environment.getExternalStorageDirectory().listFiles(apkFilter);
Log.d("InstallApk", "Filter applied. Size: "+ file.length);
for (int i=0; i < file.length; i++)
{
Log.d("InstallApk", "FileName:" + file[i].getName());
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file[i]), "application/vnd.android.package-archive");
startActivity(intent);
}
}
class ExtFilter implements FilenameFilter {
String ext;
public ExtFilter(String ext) {
this.ext = "." + ext;
}
public boolean accept(File dir, String name) {
return name.endsWith(ext);
}
}
}
アップデート2: このプログラムは、単純にすべてのapkファイルを列挙し、ファイルの配列にそれらを書き込み、それは順次、すべてこのAPKファイルをインストールしようとした後、そのインスタンスの、私の場合、私は上のアプリケーションgolddream.apkを置きます。私のエミュレータのsdcardです。私は私のlogcatで次の出力を参照10. SDKのV用に開発された:
12-21 06:44:39.453: D/InstallApk(14897): Filter applied. Size: 1
12-21 06:44:39.453: D/InstallApk(14897): FileName:golddream.apk
12-21 06:44:39.463: I/ActivityManager(62): Starting: Intent { act=android.intent.action.VIEW dat=file:///mnt/sdcard/golddream.apk typ=application/vnd.android.package-archive cmp=com.android.packageinstaller/.PackageInstallerActivity } from pid 14897
12-21 06:44:40.073: I/ActivityManager(62): Displayed com.android.packageinstaller/.PackageInstallerActivity: +578ms (total +1s229ms)
Uri.parse(ファイルを[i]を.getAbsolutePath()、 "アプリケーション/ vnd.android.package-アーカイブ"));解析中のエラーです。解析文字列と一致するように引数を削除します。変数iも宣言されていない。それはクラス変数かローカルでなければならないのですか? – chandanmahmud
ありがとうございました。それはかなり感謝していた。コードにエラーはありません。エミュレータでコードをテストすることは可能ですか? – chandanmahmud
実際の電話がないので、エミュレータでテストしました。 – Yury