uel*_*rdi 16 android android-intent
我正在尝试在java中创建一个管理不同社交共享应用程序的类.该类基于android意图.
但是当我尝试执行Telegram intent时,它找不到应用程序.
在这里,我把我写的代码:
public void shareTelegram(String message)
{
Intent waIntent = new Intent(Intent.ACTION_SEND);
waIntent.setType("text/plain");
waIntent.setPackage("com.telegram");
if (waIntent != null) {
waIntent.putExtra(Intent.EXTRA_TEXT, message);//
_androidActivity.startActivity(Intent.createChooser(waIntent, "Share with"));
}
else
{
Toast.makeText(_androidActivity.getApplicationContext(), "Telegram is not installed", Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
我在哪里可以找到包裹名称?提前致谢.
vgo*_*anz 30
所有Android应用都有唯一的ID,市场ID.如果你查看谷歌播放或谷歌搜索市场://详细信息?id = org.telegram,它会发送给你
https://play.google.com/store/apps/details?id=org.telegram.messenger
Run Code Online (Sandbox Code Playgroud)
如果您发送意图:
waIntent.setPackage("org.telegram.messenger");
Run Code Online (Sandbox Code Playgroud)
它会工作.
如果您更喜欢有点复杂的系统,我建议您使用:
/**
* Intent to send a telegram message
* @param msg
*/
void intentMessageTelegram(String msg)
{
final String appName = "org.telegram.messenger";
final boolean isAppInstalled = isAppAvailable(mUIActivity.getApplicationContext(), appName);
if (isAppInstalled)
{
Intent myIntent = new Intent(Intent.ACTION_SEND);
myIntent.setType("text/plain");
myIntent.setPackage(appName);
myIntent.putExtra(Intent.EXTRA_TEXT, msg);//
mUIActivity.startActivity(Intent.createChooser(myIntent, "Share with"));
}
else
{
Toast.makeText(mUIActivity, "Telegram not Installed", Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
并检查是否安装:
/**
* Indicates whether the specified app ins installed and can used as an intent. This
* method checks the package manager for installed packages that can
* respond to an intent with the specified app. If no suitable package is
* found, this method returns false.
*
* @param context The application's environment.
* @param appName The name of the package you want to check
*
* @return True if app is installed
*/
public static boolean isAppAvailable(Context context, String appName)
{
PackageManager pm = context.getPackageManager();
try
{
pm.getPackageInfo(appName, PackageManager.GET_ACTIVITIES);
return true;
}
catch (NameNotFoundException e)
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 8
用于打开电报频道:
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("http://telegram.me/shes_ir"));
final String appName = "org.telegram.messenger";
try {
if (isAppAvailable(mainActivity.getApplicationContext(), appName))
i.setPackage(appName);
} catch (PackageManager.NameNotFoundException e) {}
mainActivity.startActivity(i);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20286 次 |
| 最近记录: |