在做项目的时候,要求拔出USB接口要删除指定文件,达到某功能;就想到利用ACTION_POWER_DISCONNECTED广播。
- 1、 配置文件
AndroidManifest.xml
<receiver android:name="com.xtc.charging.activity.PowerBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
- 2、工具类
CommonUtil.java
public static boolean createFile( String destFileName )
{
File file = new File( destFileName );
if ( file.exists( ) )
{
LogUtil.d( TAG, "创建单个文件" + destFileName + "失败,目标文件已存在!" );
return false;
}
if ( destFileName.endsWith( File.separator ) )
{
LogUtil.e( TAG, "创建单个文件" + destFileName + "失败,目标文件不能为目录!" );
return false;
}
// 判断目标文件所在的目录是否存在
if ( !file.getParentFile( ).exists( ) )
{
// 如果目标文件所在的目录不存在,则创建父目录
LogUtil.d( TAG, "目标文件所在目录不存在,准备创建它!" );
if ( !file.getParentFile( ).mkdirs( ) )
{
LogUtil.e( TAG, "创建目标文件所在目录失败!" );
return false;
}
}
// 创建目标文件
try
{
if ( file.createNewFile( ) )
{
LogUtil.d( TAG, "创建单个文件" + destFileName + "成功!" );
return true;
}
else
{
LogUtil.e( TAG, "创建单个文件" + destFileName + "失败!" );
return false;
}
} catch ( IOException e )
{
e.printStackTrace( );
LogUtil.e( TAG, "创建单个文件" + destFileName + "失败!" + e.getMessage( ) );
return false;
}
}
public static void delFile( String filePaht )
{
try
{
if ( Environment.getExternalStorageState( ).equals( Environment.MEDIA_MOUNTED ) )
{
File file = new File( filePaht );
if ( file.exists( ) == true )
{
file.delete( );
LogUtil.d( TAG, "删除目标文件:" + filePaht );
}
else
{
LogUtil.d( TAG, "删除目标文件不存在:" + filePaht );
}
}
} catch ( Exception exception )
{
exception.printStackTrace( );
}
}
- 3、接收广播
PowerBroadcastReceiver.java
package com.xtc.charging.activity;
import com.xtc.charging.util.CommonUtil;
import com.xtc.charging.util.LogUtil;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.BatteryManager;
public class PowerBroadcastReceiver extends BroadcastReceiver
{
@Override
public void onReceive( Context context, Intent intent )
{
// TODO Auto-generated method stub
// 方式一
/*
int chargePlug = intent.getIntExtra( BatteryManager.EXTRA_PLUGGED, -1 );
LogUtil.d( CommonUtil.TAG, "chargePlug =" + chargePlug );
if ( chargePlug == -1 )
{
CommonUtil.delFile( CommonUtil.INSTALL_FILE );
}
*/
// 方式二
String action = intent.getAction( );
LogUtil.d( CommonUtil.TAG, "action =" + action );
if ( action.equals( Intent.ACTION_POWER_DISCONNECTED ) )
{
CommonUtil.delFile( CommonUtil.INSTALL_FILE );
}
}
}
- 4、打印Log
觉得本文对你有用,麻烦点赞或关注或收藏,你的肯定是我创作的无限动力,谢谢!!!