adb shell发送的广播命令在android的程序里收不到

移动开发 码拜 9年前 (2015-11-27) 4673次浏览
在windows 7系统上,使用命令行的方式运行adb shell命令发送一条广播,在android系统上的APP接收广播,然后显示消息,很简单的过程,不知道哪里出问题了,一直接收不到消息,即不运行广播接收器(BroadcastReceiver)中的onReceive()中的代码。通过USB连接,使用adb devices命令可以查询到手机设备,说明adb运行正常。
卡在这个问题上有2天了,不跨过去心里堵得慌,帮看下哪里出问题了,谢谢!
PC端:
命令行运行命令 adb shell am broadcast -a “com.example.startproject”
运行结果:
adb shell发送的广播命令在android的程序里收不到
手机端:
以下是完整代码,非常简单,很好看懂,主要有注册,销毁消息接收器,和消息接受类内容

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

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明adb shell发送的广播命令在android的程序里收不到
喜欢 (0)
[1034331897@qq.com]
分享 (0)