在windows 7系统上,使用命令行的方式运行adb shell命令发送一条广播,在android系统上的APP接收广播,然后显示消息,很简单的过程,不知道哪里出问题了,一直接收不到消息,即不运行广播接收器(BroadcastReceiver)中的onReceive()中的代码。通过USB连接,使用adb devices命令可以查询到手机设备,说明adb运行正常。
卡在这个问题上有2天了,不跨过去心里堵得慌,帮看下哪里出问题了,谢谢!
PC端:
命令行运行命令 adb shell am broadcast -a “com.example.startproject”
运行结果:

手机端:
以下是完整代码,非常简单,很好看懂,主要有注册,销毁消息接收器,和消息接受类内容
卡在这个问题上有2天了,不跨过去心里堵得慌,帮看下哪里出问题了,谢谢!
PC端:
命令行运行命令 adb shell am broadcast -a “com.example.startproject”
运行结果:

手机端:
以下是完整代码,非常简单,很好看懂,主要有注册,销毁消息接收器,和消息接受类内容
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.Toast;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
public class MainActivity extends Activity {
StartProjectBroadcastReceive StartProjectBroadcastReceiver;
IntentFilter intentFilter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intentFilter = new IntentFilter();
intentFilter.addAction("com.example.startproject"); //为BroadcastReceiver指定action,即要监听的消息名字。
}
public class StartProjectBroadcastReceive extends BroadcastReceiver {
@Override
//Once boot completed,start server
public void onReceive(Context context, Intent intent)
{
//下边是发送消息的代码,这里没有运行,说明该程序没有接收到电脑发送的广播,就不贴代码了
}
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
registerReceiver(StartProjectBroadcastReceiver,intentFilter); //注册监听
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
unregisterReceiver(StartProjectBroadcastReceiver); //取消监听
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
解决方案:50分
你有对你的broadcast 对象初始化吗?从你上面的代码里 本人没有看到。