尝试使用代号为1的本机Android代码,但在设备上无法正常运行。当我尝试模拟器时,它也不起作用,也没有任何消息/错误。但是,当在实际设备上尝试使用相同的命令时,则会收到消息"NO Support"。这意味着在NativeCall nt = NativeLookup.create(NativeCall.class);中通过设备ntnull。我的代码有什么错误吗?

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);
    }
}


设备的屏幕截图:
android -  native 实现不起作用-LMLPHP

最佳答案

您可能会在控制台中看到异常,如果连接设备电缆并运行DDMS,将会看到该异常。

不要在本机接口实现中扩展Activity。如果需要活动,请添加一个单独的类。

不要在impl类中实现本机接口。专门删除此:implements userclasses.NativeCall。如果您使用对等组件,它将产生问题。

有关更多详细信息,请查看developer guide section on native interfaces

10-04 19:16