Ho seguito le istruzioni utilizzando Fabric per implementare il mio accesso nella mia app personalizzata.Fabric Accedi con il pulsante twitter è disattivato
Il problema è che quando eseguo la mia app il pulsante è disattivato.
Qui ci sono gli errori sul mio stack trace:
03-20 11:06:32.456 6509-6509/com.jan.simplesharing E/Twitter﹕ Must Initialize Fabric before using singleton()
03-20 11:06:32.546 6509-6509/com.jan.simplesharing E/IMGSRV﹕ :0: PVRDRMOpen: TP3, ret = 46
03-20 11:06:32.556 6509-6509/com.jan.simplesharing E/IMGSRV﹕ :0: PVRDRMOpen: TP3, ret = 49
03-20 11:06:32.556 6509-6509/com.jan.simplesharing E/IMGSRV﹕ :0: PVRDRMOpen: TP3, ret = 50
03-20 11:06:32.556 6509-6509/com.jan.simplesharing E/IMGSRV﹕ :0: PVRDRMOpen: TP3, ret = 50
03-20 11:06:32.556 6509-6509/com.jan.simplesharing E/IMGSRV﹕ :0: PVRDRMOpen: TP3, ret = 50
03-20 11:06:32.566 6509-6509/com.jan.simplesharing E/IMGSRV﹕ :0: PVRDRMOpen: TP3, ret = 52
ma ho anche inizializzati tessuto nella mia attività.
Ecco un frammento:
import io.fabric.sdk.android.Fabric;
import com.twitter.sdk.android.Twitter;
import com.twitter.sdk.android.core.TwitterAuthConfig;
import com.twitter.sdk.android.core.Callback;
import com.twitter.sdk.android.core.Result;
import com.twitter.sdk.android.core.TwitterException;
import com.twitter.sdk.android.core.TwitterSession;
import com.twitter.sdk.android.core.identity.TwitterLoginButton;
public class MainActivity extends Activity {
//copied key and secret from fabric
private static final String TWITTER_KEY = "my key here";
private static final String TWITTER_SECRET = "my secret here";
private TwitterLoginButton loginButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/* Twitter */
TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
Fabric.with(this, new Twitter(authConfig));
loginButton = (TwitterLoginButton) findViewById(R.id.twitter_login_button);
loginButton.setCallback(new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
// Do something with result, which provides a TwitterSession for making API calls
}
@Override
public void failure(TwitterException exception) {
// Do something on failure
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/* Twitter */
loginButton.onActivityResult(requestCode, resultCode, data);
}
Che dire di usarlo da al riavvio Broadcast Receiver? Perché fino ad allora non avremo il contesto dell'applicazione per inizializzarlo. – CoDe
Controllare la documentazione del ciclo di vita di Android. La classe dell'applicazione viene sempre creata prima di qualsiasi altra cosa. https://developer.android.com/reference/android/app/Application.html#onCreate() –
aggiungi questa riga prima di setContentView 'TwitterAuthConfig authConfig = new TwitterAuthConfig (" KEY "," SECRET_KEY "); Fabric.with (questo, nuovo Twitter (authConfig)); setContentView (R.layout.activity_main); ' –