Native Android-Code mit Codenamen versuchen, aber das gleiche funktioniert nicht auf dem Gerät. Wenn ich Simulator versuche, funktioniert es auch keine Nachricht/Fehler. Aber wenn dasselbe am tatsächlichen Gerät versucht wird, dann erhielt Nachricht "NO Support"
. Es bedeutet in NativeCall nt = NativeLookup.create(NativeCall.class);
durch Gerät nt
ist null
. Gibt es einen Fehler in meinem Code?Native Implementierung funktioniert nicht
NativeImpl Code:
public class NativeCallImpl extends Activity implements userclasses.NativeCall{
public void setNative(String param) {
Intent intent = new Intent(this, UploadData.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
this.getApplicationContext(), 234324243, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
+ (10 * 1000), pendingIntent);
Toast.makeText(getApplicationContext(), "Native call", Toast.LENGTH_LONG).show();
}
public boolean isSupported() {
return true;
}
}
Schnittstelle:
public interface NativeCall extends NativeInterface{
public void setNative(String mobileNumber);
//public boolean isSupported();
}
Call:
private void autoUpdate(){
NativeCall nt= NativeLookup.create(NativeCall.class);
if(nt!=null){
nt.setNative(getMobileNumber());
}else{
Dialog.show("NO Support", "No Native Support", "OK", null);
}
}
Sie sind richtig, aber warum unten Fehler beim Erstellen 'Nicht kopieren Bibliothek D: \ PR_work \ checkInOut \ override, es ist ein Verzeichnis. Kopieren der Bibliothek D: \ PR_work \ checkInOut \ lib \ impl \ cls ist kein Verzeichnis. Kopieren der Bibliothek D: \ PR_work \ checkInOut \ lib \ impl \ stubs ist kein Verzeichnis. Kopieren der Bibliothek D: \ PR_work \ checkInOut \ native \ internal_tmp ist kein Verzeichnis. Kopieren der Bibliothek D: \ PR_work \ checkInOut \ native, es ist ein Verzeichnis.Es wird in das Projekt aufgenommen oder nicht. –
Wenn ich Komponenten von Codename eins in nativem Code wie Dialog.show(); verwende, funktioniert das? –
Dies sind keine Fehler, dies sind Hinweise von Ant. Sie können Codename One-Komponenten von nativ aufrufen, beachten Sie jedoch, dass dies in iOS viel schwieriger ist und Sie Threading-Probleme behandeln müssen, da Codename One-Komponenten auf dem EDT ausgeführt werden müssen, während nativer Code in einem eigenen Thread ausgeführt werden muss. Es gibt einen Abschnitt über native Rückrufe im oben genannten Entwicklerleitfaden. –