在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 对象初始化吗?从你上面的代码里 本人没有看到。