这里有关于来自于Android的意图开始一个谷歌的Hangouts以前的讨论: 开始在谷歌Android的Hangouts
我如何能在Android中启动一个谷歌的Hangouts与意图是什么?
得出的结论是,这是不可能的。 它这里是一个要求增强: https://code.google.com/p/google-plus-platform/issues/detail?id=385
不过,昨日谷歌发布了新的Hangouts应用程式,一套新的意图的。 已经开始通过意图视频群聊,现在可能吗?
我已经取得了部分成功与action=android.intent.action.VIEW
, data=content://plus.google.com/hangouts
。
不过,我想传递的人我要调用的名称或ID - 收件人姓名。 我不知道这一点。
新的基于浏览器的应用程序的视频群聊开始与一个URL这样的视频群聊:
https://plus.google.com/hangouts/_/CONVERSATION/[26-character ID]?hl=en_US&hscid=[19-digit ID]&hpe=[14-character value]&hpn=[Google+ Name of Recipient]&hnc=0&hs=41.
我认为不是所有的参数都需要启动一个聚会,但我不能破译如何在意图通过收件人的姓名。
有什么想法吗? 谢谢。
所以,我不知道如果这能帮助别人,因为我主要是寻找火了使用塔斯克的意图。 如果你进入的Google+>设置>你可以勾选“保持接触最新的”,它会一些新的动作加入到当你点击在Android的用户出现卡。 然后你可以使用意图拦截阅读未来通过的值。 这是我的了:
ACTION: android.intent.action.VIEW
DATA: content://com.android.contacts/data/5555
TYPE: vnd.android.cursor.item/vnd.googleplus.profile.comm
FLAGS:
FLAG_ACTIVITY_FORWARD_RESULT
FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
FLAG_ACTIVITY_PREVIOUS_IS_TOP
1 ACTIVITIES MATCH THIS INTENT:
Hangouts (com.google.android.talk - com.google.android.apps.babel.phone.BabelProfileActionActivity)
我能够使用前三个值正常打开与该联系人的对话。 很显然,在你的数据字段的数量将根据接触改变。 您可以使用的伎俩,意图拦截,或者如果你有根,你可以使用类似的SQLite调试破解的联系人数据库打开数据表和下面的语句找出MIMETYPE_ID = 16和DATA4 = 10,你必须找到你了你RAW_CONTACT_ID是什么了。 祝好运!
简单的解决办法是,查询ContactContract.Data为_id和MIME类型。
ContentResolver resolver = context.getContentResolver();
cursor = resolver.query(
ContactsContract.Data.CONTENT_URI,
null, null, null,
ContactsContract.Contacts.DISPLAY_NAME);
//Now read data from cursor like
while (cursor.moveToNext()) {
long _id = cursor.getLong(cursor.getColumnIndex(ContactsContract.Data._ID));
String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
String mimeType = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.MIMETYPE));
Log.d("Data", _id+ " "+ displayName + " " + mimeType );
}
输出会像下面
12561艾伦vnd.android.cursor.item / vnd.googleplus.profile.comm
12562艾伦vnd.android.cursor.item / vnd.googleplus.profile.comm
12564艾伦vnd.android.cursor.item / vnd.googleplus.profile
现在保存在数据库或其他地方只有那些_ids其MIME类型是vnd.android.cursor.item / vnd.googleplus.profile.comm
然后你发起的视频群聊呼叫/消息,像这样的接触
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
// the _ids you save goes here at the end of /data/12562
intent.setDataAndType(Uri.parse("content://com.android.contacts/data/_id"),
"vnd.android.cursor.item/vnd.googleplus.profile.comm");
intent.setPackage("com.google.android.talk");
startActivity(intent);
对于上面的代码工作,你必须要检查“保持接触最新的” Google+应用程序>设置>。
小聚能处理一般的份额的意图。
下面是代码:
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, "text to be shared");
activity.startActivity(sendIntent);
尝试以这种方式
下面的方法使用共享文本群聊
/**
* Initiate the actions encoded in the specified URI.
*/
public void initiateHangOutUri(Context myContext, String textToShare) {
// Make sure Android client is installed.
if (!isHangOutClientInstalled(myContext)) {
goToMarket(myContext);
return;
}
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textToShare);
sendIntent.setType("text/plain");
sendIntent.setPackage("com.google.android.talk");
context.startActivity(sendIntent);
return;
}
下面的方法来检查此设备上安装的视频群聊
/**
* Determine whether the HangOut for Android client is installed on this device.
**/
public boolean isHangOutClientInstalled(Context myContext) {
final PackageManager packageManager = context.getPackageManager();
Intent intent = packageManager.getLaunchIntentForPackage("com.google.android.talk");
if (intent == null) {
return false;
}
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
下面的方法使用goto Play商店中如果没有安装的视频群聊
public void goToMarket(Context myContext) {
Uri marketUri = Uri.parse("market://details?id=com.skype.raider");
Intent myIntent = new Intent(Intent.ACTION_VIEW, marketUri);
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
myContext.startActivity(myIntent);
return;
}
嘿,我想你试试这个。
Intent sky = new Intent("android.intent.action.VIEW", Uri.parse("https://talkgadget.google.com/hangouts/extras/talk.google.com/myhangout"));
startActivity(sky);
你只需要给视频群聊的网址,但很抱歉,Google暂停了名为hangots,所以这个网址每一次变化。