Wifi广播android内部的android意图

用户名

我正在学习android,并且被困在这里:

我正在编写的应用程序会定期在后台扫描Wifi信号。我正在使用android intent服务。问题是,应用程序永远不会执行BroadCastReceiver的onReceive()方法

意图代码:

public class BackgroundIntent extends IntentService {

    // Default Constructor
    public BackgroundIntent() {
        super("BackgroundIntent");
        // TODO Auto-generated constructor stub
    }

    WifiManager mainWifi;
    BroadcastReceiver receiverWifi;

    private final Handler handler = new Handler();

    @TargetApi(Build.VERSION_CODES.GINGERBREAD)
    @Override
    protected void onHandleIntent(Intent intent) {
        // TODO Auto-generated method stub

        // Get mainWifi
        mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        if (mainWifi.isWifiEnabled() == false) {
            mainWifi.setWifiEnabled(true);
        }

        receiverWifi = new WifiReceiver();
        doInback();

    }

    // Basically a thread which calls itself after 5000milli sec
    public void doInback() {
        handler.postDelayed(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                mainWifi.startScan();
                Log.i("Inside ", "doInBack");

                // Call itself CODE GOES HERE :D
                doInback();
            }
        }, 5000);

    }

    public class WifiReceiver extends BroadcastReceiver {

        @TargetApi(Build.VERSION_CODES.GINGERBREAD)
        public void onReceive(Context c, Intent intent) {

            // CODE NEVER GOES HERE :(

            List<ScanResult> wifiList;
            wifiList = mainWifi.getScanResults();

            Log.i("Inside receiver", "yes");

        }
    }
}

调用android Intent服务的MainActivity代码

public class MainActivity extends Activity {
    TextView texty;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Intent is called here
        Intent myIntent = new Intent(MainActivity.this, BackgroundIntent.class);
        startService(myIntent);

        texty = (TextView) findViewById(R.id.textView1);

    }

    public boolean onMenuItemSelected(int featureId, MenuItem item) {
        return super.onMenuItemSelected(featureId, item);
    }
}

知道可能是什么原因吗?这是实现背景wifi信号扫描的错误方法。当我在Main Activity中实现时,它运行正常,因此我猜测AndroidManifest.xml的编写正确。

用户名

所以问题出在我正在使用的功能上。

我使用的是onHandleIntent(intent),这是错误的函数。右一个是用于服务的onStartCommand(intent,flags,startId)

不好意思..

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Wifi广播android内部的android意图

来自分类Dev

Android-接收广播意图时出错?

来自分类Dev

Android:本机代码能否从Android系统获取广播意图?

来自分类Dev

Android广播接收器未收到意图

来自分类Dev

Android:隐式意图与广播接收器

来自分类Dev

Android-通过广播意图传递长数组

来自分类Dev

如何修复在Android中接收广播意图时出错

来自分类Dev

Android java.lang.RuntimeException:接收广播意图时出错

来自分类Dev

Android:隐式意图与广播接收器

来自分类Dev

Android-广播意图中的自定义操作

来自分类Dev

广播接收器未在android中接收意图数据。

来自分类Dev

android何时会广播意图ACTION_PACKAGE_NEEDS_VERIFICATION?

来自分类Dev

没有Wifi热点或Wifi Direct的Android广播/接收数据

来自分类Dev

Android-在Android中将SMS意图广播到其他(Biult-in短信应用)应用

来自分类Dev

如何使用wifi P2P android传递意图

来自分类Dev

来自意图服务内部的Android Alert对话框

来自分类Dev

使用DataWedge进行广播意图传送在Android应用程序中不起作用?

来自分类Dev

Android 6.0-蓝牙-Action_Found广播意图没有代码

来自分类Dev

Phonegap android,config.xml错误,接收广播意图时出错

来自分类Dev

在Android中使用广播

来自分类Dev

android广播权限

来自分类Dev

Android中的广播组

来自分类Dev

Android电池广播

来自分类Dev

Android启动Twitter意图

来自分类Dev

Android意图与消息效率?

来自分类Dev

Android分享意图问题

来自分类Dev

Android意图和内存

来自分类Dev

Android Facebook动作意图

来自分类Dev

Android TV屏保意图