2016-03-18 12 views
0

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

Antwort

0

Statt getApplicationContext() Verwendung ActivityName.this.

+0

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

+0

Ich meinte den Namen der Klasse für Ihre Aktivität dort setzen. MainActivity oder was auch immer es heißt. – Jantol

+0

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

Verwandte Themen