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>
与包相关的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>
相关文章推荐
- Android开发实践:实战演练隐式Intent的用法
- Android学习——Intent传递复杂数据类型
- android IntentService分析
- Android开发之Intent Filter
- Android中Intent详解
- Android Intent调用大全
- Android 开发中使用Intent传递数据的方法
- Android 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- 【Android】Intent理解
- Android中pendingIntent的深入理解
- Android中Activity的Intent大全
- Android Intent Flags
- Android开发之Intent.Action
- Android开发——使用intent传递对象
- Android intent-filter 简单用法
- 【Android】intent action 跳转到系统使用,调用系统功能
- Android intent 传值不更新的原因和解决办法
- Intent妙用之编写自己的android主界面
- Android Intent传递Bundle数据
- android之PendingIntent使用