网上关于adb发送广播的命令大多都有问题,实测无法执行,下面是我个人实测可行的代码以及命令。
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class AdbQueryReceiver extends BroadcastReceiver {
private static final String TAG = "AdbQueryReceiver";
/*
****************************************
测试用方法,adb远程模拟语音命令,使用如下命令
adb shell am broadcast -a (action) -n (packageName)/(packageName.ClassName) --es (key) (value)
本案例使用如下命令
adb shell am broadcast -a adb.test.action.queryContent -n com.oitsme.widgetdemo/com.oitsme.widgetdemo.test.AdbQueryReceiver --es queryContent 模拟的命令
就可以随意执行所需要的命令
****************************************
*/
@Override
public void onReceive(Context context, Intent intent) {
if (null == intent) {
Log.e(TAG,"null == intent");
return;
}
String queryContent = intent.getStringExtra("queryContent");
queryContent = queryContent.replaceAll("_"," ");
Log.e(TAG,"queryContent = "+queryContent);
}
/*
*配置
<receiver android:name=".test.AdbQueryReceiver"
android:exported="true">
<intent-filter>
<action android:name="adb.test.action.queryContent"></action>
</intent-filter>
</receiver>
*/
}