尝试使用代号为1的本机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);
}
}
设备的屏幕截图:
最佳答案
您可能会在控制台中看到异常,如果连接设备电缆并运行DDMS,将会看到该异常。
不要在本机接口实现中扩展Activity
。如果需要活动,请添加一个单独的类。
不要在impl类中实现本机接口。专门删除此:implements userclasses.NativeCall
。如果您使用对等组件,它将产生问题。
有关更多详细信息,请查看developer guide section on native interfaces。