estou com um problema encontrei alguma coisa na net e fui adicionando ao meu projeto
ideia é ao clica no botão update irá fazer o download do outro app que está no drop box
aparece a msg de download mais na verdade não faz o download
nota:
app key,token e secret key retirei do code para posta aqui
package projetoleandro.myapplication;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.dropbox.client2.DropboxAPI;
import com.dropbox.client2.android.AndroidAuthSession;
import com.dropbox.client2.session.AppKeyPair;
import java.io.File;
import java.io.FileOutputStream;
import static projetoleandro.myapplication.R.menu.main;
public class MainActivity extends Activity {
private void AutoUpdate (String NameOfNewApplication, String downloadPathFrom)
{
DropboxDownloadPathTo = NameOfNewApplication;
DropboxDownloadPathFrom = downloadPathFrom;
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "Download file ...", Toast.LENGTH_SHORT).show();
Thread th = new Thread(new Runnable() {
public void run() {
File file = new File(getApplicationContext().getFilesDir()+"/"+DropboxDownloadPathTo + DropboxDownloadPathFrom.substring(DropboxDownloadPathFrom.lastIndexOf('.')));
if (file.exists()) file.delete();
try {
FileOutputStream outputStream = new FileOutputStream(file);
dropbox.dropboxAPI.getFile(DropboxDownloadPathFrom, null, outputStream, null);
getMain().runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "File successfully downloaded.", Toast.LENGTH_SHORT).show();
}
});
} catch (Exception e) {
e.printStackTrace();
}
if(file.exists())
{
while (file.length() == 0)
{
try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}
}
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
});
th.start();
}
});
}
static DropboxAPI<AndroidAuthSession> dropboxAPI;
private static final String APP_KEY = "pw6tf664jiu3r36";
private static final String APP_SECRET = "1fkjhsgsoxlwikl";
private static final String ACCESSTOKEN = "uE4wPiT6Nz4AAAAAAAAJrqGi6CpXEfU3e6jYngGkAHXhF2-MZdExmhAPWQB9ujS-";
private DropboxAPI.UploadRequest request;
private AndroidAuthSession buildSession()
{
AppKeyPair appKeyPair = new AppKeyPair(APP_KEY, APP_SECRET);
AndroidAuthSession session = new AndroidAuthSession(appKeyPair);
session.setOAuth2AccessToken(ACCESSTOKEN);
return session;
}
static final int UploadFromSelectApp = 9501;
static final int UploadFromFilemanager = 9502;
public static String DropboxUploadPathFrom = "";
public static String DropboxUploadName = "";
public static String DropboxDownloadPathFrom = "";
public static String DropboxDownloadPathTo = "";
public String getPath(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA, MediaStore.Video.Media.DATA, MediaStore.Audio.Media.DATA };
cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String s = cursor.getString(column_index);
if(s!=null) {
cursor.close();
return s;
}
}
catch(Exception e){}
try {
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
cursor.moveToFirst();
String s = cursor.getString(column_index);
if(s!=null) {
cursor.close();
return s;
}
}
catch(Exception e){}
try {
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
cursor.moveToFirst();
String s = cursor.getString(column_index);
cursor.close();
return s;
}
finally {
if (cursor != null) {
cursor.close();
}
}
}
protected MainActivity getMain()
{
return this;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button1);
Button button1 = (Button) findViewById(R.id.update);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
AutoUpdate ("app-debug.apk", getApplicationContext().getFilesDir()+"app-debug.apk");
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(new Intent("projetoleandro.myapplication.list"));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(main, menu);
return true;
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
finish();
}
}
Android Monitor
06-01 12:51:58.538 30277-30308/projetoleandro.myapplication W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method ‘com.dropbox.client2.DropboxAPI$DropboxFileInfo com.dropbox.client2.DropboxAPI.getFile(java.lang.String, java.lang.String, java.io.OutputStream, com.dropbox.client2.ProgressListener)’ on a null object reference
06-01 12:51:58.538 30277-30308/projetoleandro.myapplication W/System.err: at projetoleandro.myapplication.MainActivity$1$1.run(MainActivity.java:111)
06-01 12:51:58.538 30277-30308/projetoleandro.myapplication W/System.err: at java.lang.Thread.run(Thread.java:761)