我正在使用下面的代码打开Facebook页面URL的Facebook共享对话框.
问题是,当我通过Facebook应用程序查看我墙上的共享帖子时,我发现没有共享页面封面的帖子.
如果我通过我的墙上的Facebook应用程序共享同一页面,我会找到带有共享页面封面的帖子(当然这更酷).
下面的代码中是否缺少参数?
我正在使用Facebook SDK 4.1.2
FacebookDialog shareDialog = new ShareDialog(mMainActivity);
if (ShareDialog.canShow(ShareLinkContent.class))
{
ShareLinkContent linkContent = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse(aFacebookPageURL))
.build();
shareDialog.show(linkContent);
}
Run Code Online (Sandbox Code Playgroud)
编辑1:
使用.setImageUrl(Uri.parse(aPageCoverURL))
您可以看到上半部分(通过Facebook移动应用程序共享)和下半部分(通过我的应用程序共享)之间的差异.

编辑2:如何使用以下代码共享Facebook页面?下面的代码不起作用,没有出现共享对话框,我不知道是否有缺少参数或者此代码不是为了共享页面,但我正在尝试.
ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
.putString("og:type", "page")
.putString("og:title", aTitle)
.putString("og:url", aURL)
.build();
// Create an action
ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
.setActionType(null)
.putObject("page", object)
.build();
ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
.setPreviewPropertyName("page")
.setAction(action)
.build();
ShareDialog.show(mMainActivity, content);
Run Code Online (Sandbox Code Playgroud) 我正在使用Facebook SDK 4.1.2并在Android 4.4.2上进行测试 - 知道我已经从我的手机上卸载了Facebook应用程序用于测试目的,这意味着登录和授权我的应用程序是通过FB SDK提供的webview.
每次清除内存时,我都会在对话框中收到此消息"您已经授权{Application Name}"
如何避免此消息反复出现会破坏用户体验?
明知并根据下面的代码,每次我清楚当应用程序启动,这会导致在我的代码运行下面的2行,我相信这是负责该消息的移动存储AccessToken.getCurrentAccessToken()返回null.
List<String> PUBLIC_PROFILE_PERMISSION = Arrays.asList("public_profile");
LoginManager.getInstance().logInWithReadPermissions(this, PUBLIC_PROFILE_PERMISSION); //Log in to FB
Run Code Online (Sandbox Code Playgroud)
我登录代码流程,如果可以改进的话请转发:
AccessToken mAccessToken;
CallbackManager callbackManager;
AccessTokenTracker accessTokenTracker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FacebookSdk.sdkInitialize(this);
callbackManager = CallbackManager.Factory.create();
updateWithToken(AccessToken.getCurrentAccessToken());
accessTokenTracker = new AccessTokenTracker()
{
@Override
protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken newAccessToken)
{
updateWithToken(newAccessToken);
}
};
}
Run Code Online (Sandbox Code Playgroud)
// updateWithToken(...)函数
private void updateWithToken(AccessToken currentAccessToken) {
if (currentAccessToken != null)
{
mAccessToken = currentAccessToken;
AccessToken.setCurrentAccessToken(currentAccessToken);
}
else
{
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() …Run Code Online (Sandbox Code Playgroud) 在我的活动中,我使用以下代码打开/关闭全屏。我所说的全屏是指隐藏/显示状态栏。该问题发生在具有切口(有摄像头的地方)且状态栏可见且处于横向状态的设备上。当状态栏隐藏或/和处于纵向时它会延伸。
if(aStatus){ // Hide
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN , WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
Run Code Online (Sandbox Code Playgroud)
如图所示,左侧的白色区域应被覆盖。
https://i.stack.imgur.com/7va88.png
compileSdkVersion 29
buildToolsVersion '29.0.3'
minSdkVersion 21
targetSdkVersion 29
Run Code Online (Sandbox Code Playgroud)
所选解决方案将获得 50 积分奖励。谢谢你!
我在我的(Obj_A)中使用WeakReference for ImageView,并将此ImageView WeakReference传递给另一个将其分配给ImageView变量的对象(Obj_B)(但也不是WeakReference),因此接收器ImageView变量将具有WeakReference的本质?
我希望我能够正确地塑造我的问题,我希望你理解我的意思.
我使用Android Studio创建了一个项目,其中包含使用ListView和导航抽屉模板的活动,我的目标是API 14+,我正在测试Galaxy Note 3 Kitkat - 下面代码的结果是"Nothing"动作栏颜色是黑色(非常深灰色),不是我想要的蓝色.
在build.gradle文件中
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'}
Run Code Online (Sandbox Code Playgroud)
在AndroidManifest.xml中
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
Run Code Online (Sandbox Code Playgroud)
在Styles.xml(我有AppTheme)
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat">
<item name="android:activatedBackgroundIndicator">@drawable/drawer_list_selector</item>
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@drawable/blue_action_bar_color</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在blue_action_bar_color.xml中
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/action_bar"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
在colors.xml中
<color name="action_bar">#3b5b98</color>
Run Code Online (Sandbox Code Playgroud)
那我在这里错过了什么?
EDIT1:
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
Run Code Online (Sandbox Code Playgroud)
EDIT2:
我不能用
<style name="AppTheme" parent="android:Theme.Holo.Light">
Run Code Online (Sandbox Code Playgroud)
当我的应用程序崩溃时出现错误消息
Caused by: java.lang.IllegalStateException: You need to use …Run Code Online (Sandbox Code Playgroud) 我使用 Mapbox Studio 作为映射和样式的基础,然后将 HTML 用于其他地图功能。
其中一项功能是在悬停或鼠标进入时更改图标不透明度。当您直接在 HTML 中创建它时,我已经检查了其他示例和所有其他参考功能。我设法改变了不透明度,但仅限于整个图层。
我可以以某种方式使用 e.features[0] 命令行将更改仅应用于一个功能而不是整个图层吗?
我使用此代码更改整个图层“图标”的不透明度(图层包含 5 个带有文本的图标):
// Change the cursor to a default and change opacity when the it enters a feature in the 'Icons' layer.
map.on('mouseenter', 'Icons', function() {
map.getCanvas().style.cursor = 'default';
var feature = e.features[0];
map.setPaintProperty('Icons', 'icon-opacity', 0.5);
});
// Change it back to a pointer and reset opacity when it leaves.
map.on('mouseleave', 'Icons', function() {
map.getCanvas().style.cursor = '',
map.setPaintProperty('Icons', 'icon-opacity', 1);
});
Run Code Online (Sandbox Code Playgroud)
谢谢!!!
虽然这个问题在SO上一遍又一遍地重复,但是没有解决方案正常工作,在下面的代码中,它应该在启动我的活动10秒后第一次触发,但它会立即启动.我正在使用FLAG_UPDATE_CURRENT,所以没有过去的时间立即开火,因为我没有按特定的小时/分钟/秒设置它.你能不能把我的注意力集中在我所缺少的东西上.
我正在测试Android 5.0 Targeting API 4.0+
targetSdkVersion 23
Intent myIntent = new Intent(this, check.class);
PendingIntent pi = PendingIntent.getBroadcast(this, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Run Code Online (Sandbox Code Playgroud)
am.setRepeating(AlarmManager.RTC,10000,(AlarmManager.INTERVAL_DAY/8),pi);
这是我在AndroidManifest.xml中的check.class
<receiver
android:name=".Check"
android:exported="false" />
Run Code Online (Sandbox Code Playgroud)