GetBroadcast.registerReceiver(getApplicationContext());//注册广播,用于监听应用是否安装完成
//安装apk
protected void installApk(File file) {
Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW");
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setDataAndTypeAndNormalize(Uri.fromFile(file),"application/vnd.android.package-archive");
startActivity(intent);
}
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.widget.Toast;
public class GetBroadcast extends BroadcastReceiver {
private static GetBroadcast mReceiver = new GetBroadcast();
private static IntentFilter mIntentFilter;public static void registerReceiver(Context context) {
mIntentFilter = new IntentFilter();
mIntentFilter.addDataScheme("package");
mIntentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
context.registerReceiver(mReceiver, mIntentFilter);
}public static void unregisterReceiver(Context context) {
context.unregisterReceiver(mReceiver);
}@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
String packageName = intent.getData().getSchemeSpecificPart();
if (Intent.ACTION_PACKAGE_ADDED.equals(action)) {
Toast.makeText(context, "添加了新的应用", Toast.LENGTH_LONG).show();
PackageManager pm = context.getPackageManager();
Intent intent1 = new Intent();
try {
intent1 = pm.getLaunchIntentForPackage(packageName);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
}
本文介绍了一种在Android中实现应用安装的方法,并通过广播接收器监听应用的安装状态。文章详细展示了如何创建并注册广播接收器以监听特定的动作,如应用被添加到设备上。
767

被折叠的 条评论
为什么被折叠?



