android 自动弹出安装,Android DownloadManager下载并自动弹出安装

1.版本2.3以上

2. 

只能贴代码,本想上传demo的,找不到地方

public class MainActivity extends Activity {

private Button mBut_download;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mBut_download = (Button)findViewById(R.id.mBut_download);

mBut_download.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

intoDownloadManager();

}

});

}

@SuppressLint("NewApi")

@TargetApi(Build.VERSION_CODES.GINGERBREAD)

private void intoDownloadManager(){

DownloadManager dManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);

Uri uri = Uri.parse("http://dingphone.ufile.ucloud.com.cn/apk/guanwang/time2plato.apk");

Request request = new Request(uri);

// 设置下载路径和文件名

request.setDestinationInExternalPublicDir("download", "time2plato.apk");

request.setDescription("柏拉图新版本下载");

request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

request.setMimeType("application/vnd.android.package-archive");

// 设置为可被媒体扫描器找到

request.allowScanningByMediaScanner();

// 设置为可见和可管理

request.setVisibleInDownloadsUi(true);

long refernece = dManager.enqueue(request);

// 把当前下载的ID保存起来

SharedPreferences sPreferences = getSharedPreferences("downloadplato", 0);

sPreferences.edit().putLong("plato", refernece).commit();

}

}

public class DownLoadBroadcastReceiver  extends BroadcastReceiver {

@SuppressLint("NewApi")

public void onReceive(Context context, Intent intent) {

long myDwonloadID = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);

SharedPreferences sPreferences = context.getSharedPreferences("downloadplato", 0);

long refernece = sPreferences.getLong("plato", 0);

if (refernece == myDwonloadID) {

String serviceString = Context.DOWNLOAD_SERVICE;

DownloadManager dManager = (DownloadManager) context.getSystemService(serviceString);

Intent install = new Intent(Intent.ACTION_VIEW);

Uri downloadFileUri = dManager.getUriForDownloadedFile(myDwonloadID);

install.setDataAndType(downloadFileUri, "application/vnd.android.package-archive");

install.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(install);        }

}

}

最后记者一定要注册广播

android:name="com.example.apkdownloadmanager.DownLoadBroadcastReceiver">

20180110160628249486.jpg

20180110160628251439.jpg

20180110160628252415.jpg

原文:http://www.cnblogs.com/qstext/p/4527929.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值