我正在开发一个android自定义键盘,并且想向我的朋友发送即时贴,例如通过键盘在视频群聊上。我为此添加了一些png。
当我使用android的share API时,我必须先选择要共享的应用。是否可以通过键盘检测当前打开的应用程序?例如,如果我正在与环聊聊天,那么我想调用意图告诉它与“ com.something.hangouts”共享
如果我在FB Messenger中,则告诉它“ com.something.facebook.messenger”等。
我试图这样得到它:
fun getOpenedApplication() {
var am = this.getSystemService(ACTIVITY_SERVICE) as ActivityManager;
var l = am.getRecentTasks(1,
ActivityManager.RECENT_WITH_EXCLUDED);
var i = l.iterator();
var pm = this.packageManager;
while (i.hasNext()) {
try {
var intent = i.next().baseIntent;
var list = pm.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
var c = pm.getApplicationLabel(pm.getApplicationInfo(
list[0].activityInfo.packageName,
PackageManager.GET_META_DATA));
Toast.makeText(this, "Application name: " + c.toString(),
Toast.LENGTH_LONG).show();
} catch (e: Exception) {
Toast.makeText(this,
"Application name not found: " + e.toString(),
Toast.LENGTH_LONG).show();
}
}
}
但是它不能正常工作...它会返回启动器或键盘。(随机)
我尝试从“最近使用的应用程序”列表中获取第一个应用程序,但是它不起作用
这是非常容易的任务。
String packageName = getCurrentInputEditorInfo().packageName;
InputMethodService类的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句