您的位置:首页 > 移动开发 > Android开发

Android中Intent

2014-04-14 17:25 337 查看
1)利用Inent监听应用程序的安装、替换、删除等

与包相关的Intent:

Intent.ACTION_PACKAGE_INSTALL

Intent.ACTION_PACKAGE_ADDED

Intent.ACTION_PACKAGE_REPLACED

Intent.ACTION_PACKAGE_REMOVED

Intent.ACTION_PACKAGE_CHANGED

Intent.ACTION_PACKAGE_RESTARTED

Intent.ACTION_PACKAGE_DATA_CLEARED

首先定义一个Broadcast类——HandlePackageAction,代码如下:

[java] view plaincopyprint?

public class HandlePackageAction extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

if (Intent.ACTION_PACKAGE_ADDED.equals(action))

{

Toast.makeText(context, "有应用被添加", Toast.LENGTH_LONG).show();

}

else if (Intent.ACTION_PACKAGE_REMOVED.equals(action))

{

Toast.makeText(context, "有应用被删除", Toast.LENGTH_LONG).show();

}

else if (Intent.ACTION_PACKAGE_CHANGED.equals(action))

{

Toast.makeText(context, "有应用被改变", Toast.LENGTH_LONG).show();

}

else if (Intent.ACTION_PACKAGE_REPLACED.equals(action))

{

Toast.makeText(context, "有应用被替换", Toast.LENGTH_LONG).show();

}

else if (Intent.ACTION_PACKAGE_RESTARTED.equals(action))

{

Toast.makeText(context, "有应用被重启", Toast.LENGTH_LONG).show();

}

else if (Intent.ACTION_PACKAGE_INSTALL.equals(action))

{

Toast.makeText(context, "有应用被安装", Toast.LENGTH_LONG).show();

}

}

}

然后在AndroidManifest.xml中注册HandlePackageAction,内容如下:

[html] view plaincopyprint?

<receiver android:name=".HandlePackageAction"

android:enabled="true">

<intent-filter>

<action android:name="android.intent.action.PACKAGE_ADDED"></action>

<action android:name="android.intent.action.PACKAGE_CHANGED"></action>

<action android:name="android.intent.action.PACKAGE_REMOVED"></action>

<action android:name="android.intent.action.PACKAGE_REPLACED"></action>

<action android:name="android.intent.action.PACKAGE_RESTARTED"></action>

<action android:name="android.intent.action.PACKAGE_INSTALL"></action>

<data android:scheme="package"></data>

</intent-filter>

</receiver>

2)安装、卸载应用程序

[java] view plaincopyprint?

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setDataAndType(Uri.fromFile(new File("/sdcard/Test.apk")),

"application/vnd.android.package-archive");

startActivity(intent); // 安装 程序

Uri packageURI = Uri.parse("package:com.ygc.Test");

Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);

startActivity(uninstallIntent);// 正常卸载程序

3)开机启动Activity

首先定义一个Broadcast类——HandleBootComplete,代码如下:

[java] view plaincopyprint?

public class HandleBootComplete extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {

Intent startActivityIntent = new Intent(context, DrawText.class);

startActivityIntent.setAction(Intent.ACTION_MAIN);

startActivityIntent.addCategory(Intent.CATEGORY_LAUNCHER);

startActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(startActivityIntent);

}

}

然后在AndroidManifest.xml中注册HandleBootComplete,内容如下:

[html] view plaincopyprint?

<!-- 添加权限 -->

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<receiver android:name="HandleBootComplete" android:enabled="true">

<intent-filter>

<action android:name="android.intent.action.BOOT_COMPLETED" />

<category android:name="android.intent.category.HOME" />

</intent-filter>

</receiver>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: