android應用程序安裝後自動打開

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);
發佈了14 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章