Ich bin damit beschäftigt, eine App zusammenzustellen, um einige Daten zwischen einem Android-Gerät und einem Arduino zu übertragen.Verarbeitung für Android 3, registerReceiver und getApplicationContext Funktionen existieren nicht
Der ursprüngliche Code wird aus einem Tutorial genommen und wurde für die Verarbeitung von 2.0b geschrieben, für API 10.
Entwicklung Ich verwende Verarbeitung 3, für die API-Entwicklung 15.
Dies ist der Code:
/* DiscoverBluetooth: Written by ScottC on 18 March 2013 using
Processing version 2.0b8
Tested on a Samsung Galaxy SII, with Android version 2.3.4
Android ADK - API 10 SDK platform */
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.widget.Toast;
import android.view.Gravity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
boolean foundDevice=false; //When this is true, the screen turns green.
//Get the default Bluetooth adapter
BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
/*The startActivityForResult() within setup() launches an
Activity which is used to request the user to turn Bluetooth on.
The following onActivityResult() method is called when this
Activity exits. */
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
if(requestCode==0){
if(resultCode == -1){
ToastMaster("Bluetooth has been switched ON");
} else {
ToastMaster("You need to turn Bluetooth ON !!!");
}
}
}
/* Create a Broadcast Receiver that will later be used to
receive the names of Bluetooth devices in range. */
BroadcastReceiver myDiscoverer = new myOwnBroadcastReceiver();
void setup(){
orientation(LANDSCAPE);
/*IF Bluetooth is NOT enabled, then ask user permission to enable it */
if (!bluetooth.isEnabled()) {
Intent requestBluetooth = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(requestBluetooth, 0);
}
/*If Bluetooth is now enabled, then register a broadcastReceiver to report any
discovered Bluetooth devices, and then start discovering */
if (bluetooth.isEnabled()) {
registerReceiver(myDiscoverer, new IntentFilter(BluetoothDevice.ACTION_FOUND));
//Start bluetooth discovery if it is not doing so already
if (!bluetooth.isDiscovering()){
bluetooth.startDiscovery();
}
}
}
void draw(){
//Display a green screen if a device has been found
if(foundDevice){
background(10,255,10);
}
}
/* This BroadcastReceiver will display discovered Bluetooth devices */
public class myOwnBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String discoveredDeviceName = intent.getStringExtra(BluetoothDevice.EXTRA_NAME);
//Display the name of the discovered device
ToastMaster("Discovered: " + discoveredDeviceName);
//Change foundDevice to true which will make the screen turn green
foundDevice=true;
}
}
/* My ToastMaster function to display a messageBox on the screen */
void ToastMaster(String textToDisplay){
Toast myMessage = Toast.makeText(getApplicationContext(),
textToDisplay,
Toast.LENGTH_LONG);
myMessage.setGravity(Gravity.CENTER, 0, 0);
myMessage.show();
}
ich erhalte Fehler auf Linien kompilieren 57 und 93 besagt:
The function "registerRevceiver(BroadcastReceiver, IntentFilter)" does not exist
The function "getApplicationContext()" does not exist
Hat jemand eine Idee, wie dieses Codebeispiel funktioniert? Ich vermute, dass es ein Problem mit der API-Ebene und einigen nicht übereinstimmenden Bibliotheken gibt.
Jede Hilfe würde sehr geschätzt werden!
Jono
Vielen Dank für Ihre Antwort. Ich habe es versucht, aber ich bekomme einen weiteren Compilerfehler: "Die Klasse" ActivityName "existiert nicht". Gibt es etwas, das ich vermisse? Danke – makepeace
Ich meinte den Namen der Klasse für Ihre Aktivität dort setzen. MainActivity oder was auch immer es heißt. – Jantol
Ich bin mir nicht sicher, wie es heißt. Könnten Sie sich den Code ansehen und mir sagen, wo ich ihn finde? Das wäre hilfreich. Warum kann ich getApplicationContext() auch nicht verwenden? – makepeace