Пробуя собственный код Android с кодовым именем один, но он не работает на устройстве. Когда я пытаюсь симулятор, это не работает и никаких сообщений/ошибок. Но когда то же самое пробовали на самом устройстве, то получил сообщение "NO Support"
. Это означает, что в NativeCall nt = NativeLookup.create(NativeCall.class);
через устройство nt
находится null
. Есть ли ошибка в моем коде?Исходная реализация не работает
NativeImpl код:
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;
}
}
Интерфейс:
public interface NativeCall extends NativeInterface{
public void setNative(String mobileNumber);
//public boolean isSupported();
}
Вызов:
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);
}
}
Вы правы, но почему ниже ошибки при сборке 'Не копирование библиотеки D: \ PR_work \ checkInOut \ override, это каталог. Не копирование библиотеки D: \ PR_work \ checkInOut \ lib \ impl \ cls, это каталог. Не копирование библиотеки D: \ PR_work \ checkInOut \ lib \ impl \ stubs, это каталог. Не копирование библиотеки D: \ PR_work \ checkInOut \ native \ internal_tmp, это каталог. Не копирование библиотеки D: \ PR_work \ checkInOut \ native, это каталог. 'Это будет включать в проект или нет. –
Если я использую компоненты кодового имени один в собственном коде, например Dialog.show() ;, он будет работать? –
Это не ошибки, это уведомления от Ant. Вы можете вызывать Codename One компоненты из native, но имейте в виду, что это намного сложнее сделать в iOS, и вам нужно решать проблемы с потоками, поскольку Codename. Один компонент должен выполняться на EDT, в то время как собственный код должен выполняться в своем потоке. В приведенной выше ссылке руководства разработчика содержится раздел о собственных обратных вызовах. –