How to keep bluetooth connection in background?

百般思念 提交于 2019-12-29 05:25:35

问题


i am writing a bluetooth app communicating with a bluetooth module. Actually it works very well. But i want the connection to stay established also while the app is in background and other apps are used, so that another activity like incoming sms or something else can trigger my app in background to send messages to my device.

Until now i am very confused how to do this. Can anyone give me advice?

I also checked this: Background Bluetooth App - Threading? but it doesn't help me.

Here is my code so far: http://pastebin.com/C7Uynuan

Side information: there is a connect button, which establishs the connection and then there are 3 other buttons sending different messages to my device. In OnResume i reconnect to my device, but this should be not necessary when having a stable connection.

Thanks,

progNewfag

EDIT: Now i am pretty sure that i need to use an IntentService, but not sure how.


回答1:


You Have to learn the service first

Here is the Example of Service

Create a new Class and Name it for Exmaple: MyService

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class MyService extends Service {
    public MyService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        return Null;
    }

    @Override
    public void onCreate() {
        Toast.makeText(this, "The new Service was Created", Toast.LENGTH_LONG).show();

    }

    @Override
    public void onStart(Intent intent, int startId) {
        // For time consuming an long tasks you can launch a new thread here...
        // Do your Bluetooth Work Here
        Toast.makeText(this, " Service Started", Toast.LENGTH_LONG).show();

        }

        @Override
        public void onDestroy() {
            Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();

        }
    }

Now in your main activity you can start the service through this code

 startService(new Intent(this, MyService.class));

For Stopping the service put this code in MainActivity

stopService(new Intent(this, MyService.class));

See this Post

Connection between Activity and Service

Also See this link

http://www.javacodegeeks.com/2014/01/android-service-tutorial.html

http://examples.javacodegeeks.com/android/core/service/android-service-example/

EDIT:

Example: Communication between Activity and Service using Messaging

http://www.intertech.com/Blog/using-localbroadcastmanager-in-service-to-activity-communications/



来源:https://stackoverflow.com/questions/25267753/how-to-keep-bluetooth-connection-in-background

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!