2010-10-17 7 views
0

lorsque l'utilisateur clique sur le lien URL je veux installer le fichier apk du serveur.installer apk à partir du serveur distant

s'il vous plaît me guider comment faire je cherchai sur le net, je ne reçois pas d'info correspondant

Merci à l'avance

Assouan

+0

Salut Aswan, je veux aussi installer l'application Android sans télécharger depuis mon propre serveur. As-tu trouvé la solution? – Manoj

Répondre

4
+0

merci shay. Mais je veux installer à partir du serveur distant.can upl expliquer en détail – Aswan

+1

Voilà comment, donnez à l'utilisateur le lien vers l'URL à distance en cliquant sur il va installer l'application. –

2

Vous ne pouvez pas forcer un APK à installer.

Si tel était le cas, tout le monde pourrait cacher des virus ou des logiciels espions sur certains serveurs et lorsque l'utilisateur clique sur un lien, un s'installe automatiquement ...

Il suffit de mettre le fichier apk que vous voulez installer sur votre serveur et laissez le lien hypertexte pointer vers lui ... tout comme une archive zip, un film ou un autre fichier exécutable.

Le navigateur téléchargera simplement l'apk et l'installera (si l'utilisateur le souhaite). L'utilisateur a besoin bien sûr d'activer des applications non commerciales dans ses paramètres ... (comme décrit dans le lien ci-dessus)

J'espère que cela vous aide ...

3

C'est le code que je l'utilise, il est pas pour un webview mais vous pouvez facilement remplacer le chargement d'URL et appliquer ce code quand même. L'intention en bas est la réponse à votre question.

/** 
* Main 
* When started, will download latest version of AN APPLICATIONand launch an install 
* Is just a dialog 
* 
* REQUIRES SDCARD 
* @author Dag 
* 
*/ 
public class Main extends Activity { 
ProgressDialog dlDialog; 
String path = Environment.getExternalStorageDirectory()+ "/"; // Path to where you want to save the file 
String inet = "http://www.google.com/test.apk"; // Internet path to the file 
String cachedir = "";          
String filename = "TMC.apk";         

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    TextView webview = new TextView(this); 
    setContentView(webview); 

    File getcache = this.getCacheDir(); 
    cachedir = getcache.getAbsolutePath(); 

    dlDialog = new ProgressDialog(Main.this); 
    dlDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
    dlDialog.setTitle("Downloadin"); 
    dlDialog.setMessage("Connecting"); 
    dlDialog.show(); 

    new Thread(new Runnable() { 

     public void run() { 

      String filePath = path; 

      InputStream is = null; 
      OutputStream os = null; 
      URLConnection URLConn = null; 

      try { 
       URL fileUrl; 
       byte[] buf; 
       int ByteRead = 0; 
       int ByteWritten = 0; 
       fileUrl = new URL(inet); 

       URLConn = fileUrl.openConnection(); 

       is = URLConn.getInputStream(); 

       String fileName = inet.substring(inet.lastIndexOf("/") + 1); 

       File f = new File(filePath); 
       f.mkdirs(); 
       String abs = filePath + fileName; 
       f = new File(abs);      


       os = new BufferedOutputStream(new FileOutputStream(abs)); 

       buf = new byte[1024]; 

       /* 
       * This loop reads the bytes and updates a progressdialog 
       */ 
       while ((ByteRead = is.read(buf)) != -1) { 

        os.write(buf, 0, ByteRead); 
        ByteWritten += ByteRead; 

        final int tmpWritten = ByteWritten; 
        runOnUiThread(new Runnable() { 

         public void run() { 
          dlDialog.setMessage(""+tmpWritten+" Bytes"); 
         } 

        }); 
       } 

       runOnUiThread(new Runnable() { 

        public void run() { 
         dlDialog.setTitle("Startar"); 
        } 

       }); 
       is.close(); 
       os.flush(); 
       os.close(); 


       Thread.sleep(200); 

       dlDialog.dismiss(); 

       Intent intent = new Intent(Intent.ACTION_VIEW); 
       intent.setDataAndType(Uri.fromFile(new File(abs)), 
         "application/vnd.android.package-archive"); 
       startActivity(intent); 
       finish(); 

      } catch (Exception e) { 
       e.printStackTrace(); 

      } 

     } 
    }).start(); 

} 
} 
+0

Je ne veux pas stocker APK n'importe où dans l'appareil ou carte SD. Je veux installer directement l'apk de mon serveur. –

+0

Supprimer le fichier APK par la suite, sinon cette méthode n'est pas pour vous. – DagW

Questions connexes