【发布时间】:2015-03-29 11:11:14
【问题描述】:
我在使用 Facebook Android SDK 4.0 时遇到了一个奇怪的问题。我添加了所有权限,API_KEY 和 Hashkeys 仔细检查了它们是否正常。但我不能在我的真实设备上使用 ShareDialog,即 API 15 和 GenyMotion 4.4.4、4.4.2。
当我尝试打开 ShareDialog 时,它没有显示我的内容。它在我的真实设备上打开为空。但它在 GenyMotion 4.2.1 上完美运行,我尝试打开 GenyMotion 4.4.4 和 4.4.2 但这些模拟器没有打开 Facebook 应用程序。他们正在将我重定向到网络视图。当我在 webview 上输入我的信息时,我可以看到我的所有内容,所以它又可以工作了。
怎么可能?我的真实设备没有发布任何内容,但 GenyMotion 4.2.1 可以正常工作吗?有什么问题?
这是我的 AndroidManifest.xml;
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SET_DEBUG_APP"/>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:name=".GlobalState"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.vet" >
<provider android:authorities="com.facebook.app.FacebookContentProvider351533225052233"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/API_KEY" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
<activity android:name="com.facebook.FacebookActivity"
android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:label="@string/app_name" />
这是我的应用程序类;
@Override
public void onCreate() {
super.onCreate();
// Enable Local Datastore.
Parse.enableLocalDatastore(this);
Parse.initialize(this, "KEY", "KEY");
FacebookSdk.sdkInitialize(getApplicationContext());
}
这是我的 MainActivity.class;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
setHasOptionsMenu(true);
return inflater.inflate(R.layout.fragment_harita, container, false);
}
public void onViewCreated(View view, Bundle savedInstanceState){
setupMap();
//showGPSDisableAlert();
FacebookSdk.sdkInitialize(getActivity().getApplicationContext());
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_share) {
if (ShareDialog.canShow(ShareLinkContent.class)) {
ShareLinkContent linkContent = new ShareLinkContent.Builder()
.setContentTitle("vet !")
.setContentDescription(
"asd")
.setContentUrl(Uri.parse("https://facebook.com/vet"))
.build();
shareDialog.show(linkContent);}
请帮我解决这个问题。谢谢 !
对不起,我的英语不好。
【问题讨论】:
-
您设备上的 Facebook 应用程序版本是多少?对于 4.4.2 和 4.4.4 的 genymotion 模拟器,你是否安装了 FB 应用,但它没有打开?
-
我的 Facebook 应用程序是最新的。我在我的 GenyMotion 中从 Google Store 下载,我的 genymotion 模拟器也是最新的。是的,我有关于 genymotions 和真实设备的 FB,但它没有打开 4.4.4 和 4.4.2,它的工作 4.2.1 就像一个魅力。我不明白为什么?
-
您可以在您的 4.4.4 和 4.4.2 设备上毫无问题地运行 FB 应用程序吗?
-
当我点击 FB 应用程序本身时,我可以在 genymotion 上运行 FB。但是当我运行 4.4.4 或 4.4.2 时,我无法将我的 faceook 对话框从我的应用程序共享到 FB 应用程序。它指向Web服务。它应该是genymotion问题。但我不明白我的真实设备会打开 facebook,但没有显示我的共享对话框消息,即 4.0.1(API 15),genymotion 4.2.1 从我的应用程序打开 FB 并完美显示我的共享对话框。真的很烦。
-
你找到解决办法了吗?
标签: android facebook android-intent android-activity share