似乎有一个有效的示例here 在Java中(我猜)。为了清楚起见,我将粘贴代码:
try {
PackageManager packageManager = context.getPackageManager();
Intent i = new Intent(Intent.ACTION_VIEW);
String url = "https://api.whatsapp.com/send?phone="+ phone +"&text=" + URLEncoder.encode(message, "UTF-8");
i.setPackage("com.whatsapp");
i.setData(Uri.parse(url));
if (i.resolveActivity(packageManager) != null) {
context.startActivity(i);
}
} catch (Exception e){
e.printStackTrace();
}
现在我一直在尝试使用QPython和Androidhelper达到相同的效果(我想这只是SL4A),而我的尝试看起来像这样:
import androidhelper
droid = androidhelper.Android()
activity = 'android.intent.action.ACTION_VIEW'
packagename = 'com.whatsapp'
uri='http://api.whatsapp.com/send?phone=*********&text=TEST'
uritype='UTF-8'
intent = droid.makeIntent(activity, uri, None,None,None, packagename, None,None).result
droid.startActivityIntent(intent,None)
我不确定应将“ uritype”设置为什么。此外,我不知道'Intent.ACTION_VIEW'是否正确。我尝试了几种变体,例如“ android.intent.action.ACTION_VIEW”。 'android.intent.ACTION_VIEW','Android.Intent.ACTION_VIEW'等。
但是我想最关键的部分是'classname'-Attribute(倒数第二个)(文献记载不充分的)SL4A API help说,如果指定了“ packagename”,则需要指定此属性
有什么想法吗?
脚本运行时未给出任何警告或错误。由于我是C形人,所以我很困惑,因为我不知道从哪里开始寻找自己的错误。