2011-11-15 9 views
0

私は、プロジェクト名がcom.exampleのAutoUpdateという名前のプロジェクトで作業しています。 と私はまた、同じパッケージ名を持つ私のSDカードに過ごしていAPK:com.example これはapk.theのAPKファイルをinstaling用のSD card.myコードであると呼ばれている私の方法では、として次のとおりです。自動インストールがアンドロイドで動作しません

private void installMarketApk() { 
     // TODO Auto-generated method stub 
     String fileName = Environment.getExternalStorageDirectory() + "/myapp.apk"; 
     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive"); 
     startActivity(intent); 
    } 

私のマニフェストファイルには、次のようになります。私は、アプリケーションシートを交換するように指示しています。このアプリケーションを実行すると

<?xml version="1.0" encoding="utf-8"?> 

<uses-sdk android:minSdkVersion="8" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:label="@string/app_name" 
     android:name="com.custom.activity.mspresentation.AutoUpdateDemoActivity" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

nダイアログ "試しているアプリケーションは、別の別のアプリケーションを置き換えます"。so私はちょうどアプリケーションをインストールするためにOKをクリックします。 1.Storage
2.network通信
3.phoneと ....... インストールし、キャンセルオプションを呼び出します。 は今、私はあなたがに変わります。このアプリケーション.thisをインストールしたいですが得ました。 インストールを選択すると、初期化と進捗バーが表示され、アプリケーションがインストールされていません
マニフェストファイルでいくつかの権限を与えなければならないのですか? 提案はありますか?

+0

は<名前は= "android.permission.INSTALL_PACKAGES" アンドロイド許可の使用します> > –

+0

同じパッケージ名で以前のアプリをアンインストールしてからもう一度やり直してください。同じパッケージでも異なる署名で既存のアプリを上書きできない場合があります – Maneesh

+0

@Maneeshはあなたの返事に感謝します! – Alok

答えて

0

それは助けてくれるかもしれません: 私の場合は、apkのパッケージ名とターゲット名は恥ずかしくなければなりません。

私はSDカードから以前の.apkを削除し、新しいAPKを入れている(curruptedしてもよいし、プロジェクトのプロパティは一致していませんでした)。

ここでinstallMarketApp here.iと混同しないでください。単にapkを手動でSDカードに挿入してください。

プライベートボイドinstallMarketApk(){// TODO 自動生成方法スタブ 列fileNameに= Environment.getExternalStorageDirectory()+ "/myapp.apk"。
意図インテント=新しいインテント(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(新しいファイル(fileName))、 "application/vnd.android.package-archive");
startActivity(インテント); \t <使用許可アンドロイド:名は= "android.permission.DELETE_PACKAGES"> }

0

マニフェストファイルに次の権限を与えてください。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

それはあなたのコード「Environment.getExternalStorageDirectoryは()」をインストールしようとしているAPIにアクセスするために、あなたのSDカードストレージにアクセスできるようになります。

+0

返信ありがとうございますが、私はapkのバージョン名、コード番号、パッケージ情報をプログラムでgetPackageManager()を使って取得しているため、このアクセス許可の要件はありません。 – Alok

+0

まだこの問題を解決していない場合は、リンクをたどって私はそれがプログラム的にアプリをインストールする方法を説明することを願っています。 1)。 http://stackoverflow.com/questions/4604239/install-application-programmatically-on-android 2)。 http://stackoverflow.com/questions/4967669/android-install-apk-programmatically –

+0

リンクのおかげで....私のAPKは壊れていた!私はちょうど新しいものと私のAPKを交換する必要があります – Alok

関連する問題