Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://android20092009.blog67.fc2.com/tb.php/74-ceaf0119
この記事にトラックバックする(FC2ブログユーザー)

インストーラーとアンインストーラーを呼び出してみる

SDK1.5r3

ソースコード
インストール用プログラム
※test01.apkをSDカードのルートに置いてください

ファイラー系アプリがどうやってインストーラーを呼び出しているのが気になって調べてみました
んでこちらに結論
http://android.amberfog.com/?p=98
パッケージインストーラーを覗いてインストーラー、アンインストーラーの呼び出しを調べてました


    		int result = Settings.Secure.getInt( getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS, 0 );
if ( result == 0 ) {
Intent intent = new Intent();
intent.setAction( Settings.ACTION_APPLICATION_SETTINGS );
startActivity(intent);
} else {
String fileName = Environment.getExternalStorageDirectory() + installString;
Intent intent = new Intent( Intent.ACTION_VIEW );
intent.setDataAndType( Uri.fromFile(new File(fileName) ), "application/vnd.android.package-archive" );
startActivity( intent );
}

設定項目にアクセスして野良アプリの許可を確認してからIntent.Viewでインストーラーを呼んでます
設定の各項目もここから確認できるわけか…
Uri指定なのでネットワークのアドレスも直接指定可能かな?そのうち…

    		Uri packageURI = Uri.parse( unInstallString );
Intent uninstallIntent = new Intent( Intent.ACTION_DELETE, packageURI );
startActivity( uninstallIntent );

アンインストールはUri.parseを使ってます。インストール済の項目のリストアップとかも調べないと…

んでついでにパッケージインストーラーを追っかけて実装できるか試してみたんですが…
http://android.git.kernel.org/?p=platform/packages/apps/PackageInstaller.git;a=tree;h=refs/heads/donut;hb=refs/heads/donut

PackageManager.installPackage
PackageManager.deletePackage

のどちらも隠蔽されていてOUT。
さらにコールバック用と思われる「IPackageInstallObserver.Stub」がimport不可なため
無理!の結論になりましたとさ
SDK1.0あたりでは使えたような気配もあるんですが…

あとmanifest.xmlはまったく弄ってませんが、パッケージマネージャーのように
<data android:scheme="content" />
を加えるとアプリケーションリストからは消えるんですな(設定のアプリケーション管理リストからは見える)
他にも設定条件がいろいろあるみたいですが、manifest.xmlのわかりやすい資料ないかしら?
スポンサーサイト

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://android20092009.blog67.fc2.com/tb.php/74-ceaf0119
この記事にトラックバックする(FC2ブログユーザー)

Appendix

プロフィール

Ukai2009

Author:Ukai2009
FC2ブログへようこそ!

最新記事

検索フォーム

ブロとも申請フォーム

この人とブロともになる

QRコード

QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。