Nihayet, ön plan uygulamasına Intents'ı göndererek bunu başardı, ancak bu sınırlamalara sahip: mesajlaşma uygulamaları genellikle, kullanıcının akışını kıran ve gereksiz bir adım ekleyen (örneğin, belirli bir sohbet). aşağıdaki gibi
Bu
elde edilebilir:
getCurrentAppPackage(...)
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
sendIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
sendIntent.setPackage(getCurrentAppPackage(context, editorInfo));
return sendIntent;
bir giriş alanına binded ne zaman IME uygulanmasından elde edebilirsiniz bir Context
ve EditorInfo
verilen ön plan Aktivite, döndüren bir yöntemdir.
public String getCurrentAppPackage(Context context, EditorInfo info) {
if(info != null && info.packageName != null) {
return info.packageName;
}
final PackageManager pm = context.getPackageManager();
//Get the Activity Manager Object
ActivityManager aManager =
(ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
//Get the list of running Applications
List<ActivityManager.RunningAppProcessInfo> rapInfoList = aManager.getRunningAppProcesses();
//Iterate all running apps to get their details
for (ActivityManager.RunningAppProcessInfo rapInfo : rapInfoList) {
//error getting package name for this process so move on
if (rapInfo.pkgList.length == 0) {
Log.i("DISCARDED PACKAGE", rapInfo.processName);
continue;
}
try {
PackageInfo pkgInfo = pm.getPackageInfo(rapInfo.pkgList[0], PackageManager.GET_ACTIVITIES);
return pkgInfo.packageName;
} catch (PackageManager.NameNotFoundException e) {
// Keep iterating
}
}
return null;
}
Güncelleme: Content API Teslim API düzeyinde 25 (ve destek kitaplığı bu API 13 dan iş yapar) üzerine eklenmiştir. Daha fazla bilgi için: https://developer.android.com/preview/image-keyboard.html Uygulamalar uygulamaya geçene kadar, yukarıdaki yöntem geri dönüş olarak kullanılabilir.
Henüz bir çözüm buldunuz mu? –
"Android'in önceki sürümlerinde, (ayrıca giriş yöntemi düzenleyicileri veya IME'ler olarak da bilinir) yumuşak klavyeler, uygulamalara yalnızca unicode emoji gönderebilir. Zengin içerik için, uygulamalar, diğer uygulamalarda kullanılamayan uygulamaya özel API'ler oluşturmak zorundaydı veya Easy Share Action veya pano aracılığıyla görüntüleri göndermek gibi geçici bir çözüm kullanın. " https://developer.android.com/preview/image-keyboard.html – hrules6872