我試圖通過Facebook驗證我的應用程序。我爲編制25 compileSdkVersion 在AndroidManifest.xml我已經啓用 <uses-permission android:name="android.permission.INTERNET" />
嘗試與Android的Facebook身份驗證時缺少INTERNET權限
我使用的是從Android按鈕稱爲LoginManager tecnique
btnFb = (Button) findViewById(R.id.btnFb);
btnFb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getPermission();
LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("public_profile", "email"));
}
});
我相關的registerd回調的LoginManager
FacebookSdk.sdkInitialize(MainActivity.this);
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult result) {
Log.i("LoginActivity","onSuccess Facebook Login"+result);
GraphRequest request = GraphRequest.newMeRequest(
AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject jsonObject, GraphResponse response) {
Log.d("","onCompleted jsonObject: "+jsonObject);
Log.d("","onCompleted response: "+response);
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link,cover,email");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
// TODO Auto-generated method stub
Log.i("LoginActivity","Login cancelled");
}
@Override
public void onError(FacebookException e) {
// TODO Auto-generated method stub
Log.e("LoginActivity","ERROR: "+e.getMessage());
e.printStackTrace();
}
});
而且在Facebook之前調用請求允許使用下面的代碼
private void getPermission(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET)
!= PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.INTERNET},
1);
}
}
}
儘管我嘗試驗證失敗
Caught exception: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:190)
at com.facebook.login.LoginManager$1.onActivityResult(LoginManager.java:159)
at com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:82)
at it.implementa.ztfacebook2.MainActivity.onActivityResult(MainActivity.java:130)
at android.app.Activity.dispatchActivityResult(Activity.java:6597)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3726)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3773)
......
有什麼建議?由於
你有權限清單中的正確位置?也就是說,''標籤之外?另外,你不需要在運行時請求那個。 –
謝謝邁克我把用戶權限標籤放在應用程序標籤裏,現在沒關係 –