尝试使用代号为1的原生Android代码,但同样不能在设备上运行。当我尝试在模拟器上它不工作也没有任何消息/错误。但是当在实际设备上尝试相同时,则获得消息"NO Support"
。这意味着在NativeCall nt = NativeLookup.create(NativeCall.class);
到设备nt
中null
是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;
}
}
。我的代码中有错误吗?
NativeImpl代码:
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);
}
}
呼叫:
class Program
{
static void Main(string[] args)
{
string str = Console.ReadLine().ToLower();
string sortedString = String.Concat(str.OrderBy(c => c));
foreach (char ch in sortedString)
{
Console.WriteLine($"{ch} => {str.Count(x => x == ch)}");
}
}
}
设备截图: class Thread
答案 0 :(得分:1)
我不知道您的代码是否存在问题,但您无法在模拟器上测试本机功能。您可以使用include sources构建选项并下载源代码并在Android Studio或XCode中对其进行编译,然后在这些环境中对其进行测试。
答案 1 :(得分:1)
您可能在控制台中遇到异常,如果连接设备电缆并运行DDMS,您将看到该异常。
不要在本机接口实现中扩展Activity
。如果您需要一个Activity,请添加一个单独的类。
不要在impl类中实现本机接口。具体删除它:implements userclasses.NativeCall
。如果您使用对等组件,它将产生问题......
有关详细信息,请查看developer guide section on native interfaces。