2013-01-07 23 views
1

我張貼圖像(我捕獲我的設備的圖像)在谷歌加意圖,意味着我不使用outh身份驗證,但發佈圖像應用程序給出錯誤 我的日誌如下圖片發佈在谷歌加上通過Android意圖

01-05 20:12:14.021: E/HttpTransaction(6230): HttpOperation failed [email protected] 
01-05 20:12:14.021: E/HttpTransaction(6230): java.lang.RuntimeException: Cannot obtain authentication token 
01-05 20:12:14.021: E/HttpTransaction(6230): at com.google.android.apps.plus.network.ApiaryHttpRequestConfiguration.addHeaders(ApiaryHttpRequestConfiguration.java:59) 
01-05 20:12:14.021: E/HttpTransaction(6230): at com.google.android.apps.plus.network.HttpTransaction.<init>(HttpTransaction.java:298) 
01-05 20:12:14.021: E/HttpTransaction(6230): at com.google.android.apps.plus.network.HttpOperation.start(HttpOperation.java:199) 
01-05 20:12:14.021: E/HttpTransaction(6230): at com.google.android.apps.plus.network.HttpOperation.start(HttpOperation.java:179) 
01-05 20:12:14.021: E/HttpTransaction(6230): at com.google.android.apps.plus.phone.LocationController$2.run(LocationController.java:403) 
01-05 20:12:14.021: E/HttpTransaction(6230): Caused by: com.google.android.apps.plus.network.NetworkException: Cannot get auth token 
01-05 20:12:14.021: E/HttpTransaction(6230): at com.google.android.apps.plus.util.AccountsUtil.getAuthToken(AccountsUtil.java:141) 
01-05 20:12:14.021: E/HttpTransaction(6230): at com.google.android.apps.plus.network.ApiaryAuthDataFactory$ApiaryAuthDataImpl.getAuthToken(ApiaryAuthDataFactory.java:72) 
01-05 20:12:14.021: E/HttpTransaction(6230): at com.google.android.apps.plus.network.ApiaryHttpRequestConfiguration.addHeaders(ApiaryHttpRequestConfiguration.java:56) 
01-05 20:12:14.021: E/HttpTransaction(6230): ... 4 more 
01-05 20:12:14.021: E/HttpTransaction(6230): Caused by: com.google.android.apps.plus.network.NetworkException: Cannot get auth token 
01-05 20:12:14.021: E/HttpTransaction(6230): at com.google.android.apps.plus.util.AccountsUtil.getAuthToken(AccountsUtil.java:137) 
01-05 20:12:14.021: E/HttpTransaction(6230): ... 6 more 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
01-05 20:12:23.704: E/HttpTransaction(6230): HttpOperation failed [email protected] 
01-05 20:12:23.704: E/HttpTransaction(6230): java.lang.RuntimeException: Cannot obtain authentication token 
01-05 20:12:23.704: E/HttpTransaction(6230): at com.google.android.apps.plus.network.ApiaryHttpRequestConfiguration.addHeaders(ApiaryHttpRequestConfiguration.java:59) 
01-05 20:12:23.704: E/HttpTransaction(6230): at com.google.android.apps.plus.network.HttpTransaction.<init>(HttpTransaction.java:298) 
01-05 20:12:23.704: E/HttpTransaction(6230): at com.google.android.apps.plus.network.HttpOperation.start(HttpOperation.java:199) 
01-05 20:12:23.704: E/HttpTransaction(6230): at com.google.android.apps.plus.network.HttpOperation.start(HttpOperation.java:179) 
01-05 20:12:23.704: E/HttpTransaction(6230): at com.google.android.apps.plus.phone.LocationController$2.run(LocationController.java:403) 
01-05 20:12:23.704: E/HttpTransaction(6230): Caused by: com.google.android.apps.plus.network.NetworkException: Cannot get auth token 
01-05 20:12:23.704: E/HttpTransaction(6230): at com.google.android.apps.plus.util.AccountsUtil.getAuthToken(AccountsUtil.java:141) 
01-05 20:12:23.704: E/HttpTransaction(6230): at com.google.android.apps.plus.network.ApiaryAuthDataFactory$ApiaryAuthDataImpl.getAuthToken(ApiaryAuthDataFactory.java:72) 
01-05 20:12:23.704: E/HttpTransaction(6230): at com.google.android.apps.plus.network.ApiaryHttpRequestConfiguration.addHeaders(ApiaryHttpRequestConfiguration.java:56) 
01-05 20:12:23.704: E/HttpTransaction(6230): ... 4 more 
01-05 20:12:23.704: E/HttpTransaction(6230): Caused by: com.google.android.apps.plus.network.NetworkException: Cannot get auth token 
01-05 20:12:23.704: E/HttpTransaction(6230): at com.google.android.apps.plus.util.AccountsUtil.getAuthToken(AccountsUtil.java:137) 
01-05 20:12:23.704: E/HttpTransaction(6230): ... 6 more 
01-05 20:12:23.767: D/WifiService(2478): releaseWifiLockLocked: WifiLock{NetworkLocationProvider type=2 [email protected]} 
01-05 20:12:23.782: D/GoogleLoginService(2665): onBind: Intent { act=android.accounts.AccountAuthenticator cmp=com.google.android.gsf/.loginservice.GoogleLoginService } 
01-05 20:12:23.814: E/AudioTrack(2478): getAudioMode[0] 
01-05 20:12:23.896: D/WifiService(2478): acquireWifiLockLocked: WifiLock{NetworkLocationProvider type=2 [email protected]} 
01-05 20:12:24.173: E/HttpTransaction(6230): HttpOperation failed [email protected] 
01-05 20:12:24.173: E/HttpTransaction(6230): java.lang.RuntimeException: Cannot obtain authentication token 
01-05 20:12:24.173: E/HttpTransaction(6230): at com.google.android.apps.plus.network.ApiaryHttpRequestConfiguration.addHeaders(ApiaryHttpRequestConfiguration.java:59) 
01-05 20:12:24.173: E/HttpTransaction(6230): at com.google.android.apps.plus.network.HttpTransaction.<init>(HttpTransaction.java:298) 
01-05 20:12:24.173: E/HttpTransaction(6230): at com.google.android.apps.plus.network.HttpOperation.start(HttpOperation.java:199) 
01-05 20:12:24.173: E/HttpTransaction(6230): at com.google.android.apps.plus.network.HttpOperation.start(HttpOperation.java:179) 
01-05 20:12:24.173: E/HttpTransaction(6230): at com.google.android.apps.plus.network.HttpOperation$1.run(HttpOperation.java:294) 
01-05 20:12:24.173: E/HttpTransaction(6230): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 
01-05 20:12:24.173: E/HttpTransaction(6230): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 
01-05 20:12:24.173: E/HttpTransaction(6230): at java.lang.Thread.run(Thread.java:1096) 
01-05 20:12:24.173: E/HttpTransaction(6230): Caused by: com.google.android.apps.plus.network.NetworkException: Cannot get auth token 
01-05 20:12:24.173: E/HttpTransaction(6230): at com.google.android.apps.plus.util.AccountsUtil.getAuthToken(AccountsUtil.java:141) 
01-05 20:12:24.173: E/HttpTransaction(6230): at com.google.android.apps.plus.network.ApiaryAuthDataFactory$ApiaryAuthDataImpl.getAuthToken(ApiaryAuthDataFactory.java:72) 
01-05 20:12:24.173: E/HttpTransaction(6230): at com.google.android.apps.plus.network.ApiaryHttpRequestConfiguration.addHeaders(ApiaryHttpRequestConfiguration.java:56) 
01-05 20:12:24.173: E/HttpTransaction(6230): ... 7 more 
01-05 20:12:24.173: E/HttpTransaction(6230): Caused by: com.google.android.apps.plus.network.NetworkException: Cannot get auth token 
01-05 20:12:24.173: E/HttpTransaction(6230): at com.google.android.apps.plus.util.AccountsUtil.getAuthToken(AccountsUtil.java:137) 
01-05 20:12:24.173: E/HttpTransaction(6230): ... 9 more 
01-05 20:12:24.396: E/MediaPlayer(2478): Unable to to create media player 
***************************************************************************************************************************************************************************** 
01-05 20:12:34.107: E/AndroidRuntime(6230): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.google.android.apps.plus/com.google.android.apps.plus.phone.EditAudienceActivity}: android.view.InflateException: Binary XML file line #10: Error inflating class com.google.android.apps.plus.views.EsListView 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.os.Looper.loop(Looper.java:123) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at java.lang.reflect.Method.invoke(Method.java:521) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at dalvik.system.NativeStart.main(Native Method) 
01-05 20:12:34.107: E/AndroidRuntime(6230): Caused by: android.view.InflateException: Binary XML file line #10: Error inflating class com.google.android.apps.plus.views.EsListView 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.view.LayoutInflater.createView(LayoutInflater.java:513) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at com.google.android.apps.plus.fragments.EditAudienceFragment.onCreateView(EditAudienceFragment.java:414) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:846) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1061) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1160) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:558) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:200) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.app.Activity.setContentView(Activity.java:1647) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at com.google.android.apps.plus.phone.EditAudienceActivity.onCreate(EditAudienceActivity.java:46) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  ... 11 more 
01-05 20:12:34.107: E/AndroidRuntime(6230): Caused by: java.lang.reflect.InvocationTargetException 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at com.google.android.apps.plus.views.EsListView.<init>(EsListView.java:25) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at java.lang.reflect.Constructor.constructNative(Native Method) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at java.lang.reflect.Constructor.newInstance(Constructor.java:446) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.view.LayoutInflater.createView(LayoutInflater.java:500) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  ... 30 more 
01-05 20:12:34.107: E/AndroidRuntime(6230): Caused by: android.content.res.Resources$NotFoundException: File res/drawable-hdpi/scrollbar_handle_vertical.9.png from drawable resource ID #0x0 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.content.res.Resources.loadDrawable(Resources.java:1714) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.widget.AbsListView.<init>(AbsListView.java:630) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.widget.ListView.<init>(ListView.java:230) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.widget.ListView.<init>(ListView.java:226) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  ... 34 more 
01-05 20:12:34.107: E/AndroidRuntime(6230): Caused by: java.io.FileNotFoundException: res/drawable-hdpi/scrollbar_handle_vertical.9.png 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.content.res.AssetManager.openNonAssetNative(Native Method) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.content.res.AssetManager.openNonAsset(AssetManager.java:405) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  at android.content.res.Resources.loadDrawable(Resources.java:1706) 
01-05 20:12:34.107: E/AndroidRuntime(6230):  ... 38 more 

的代碼,我現在用的就是以下

if(share!=null && share.equalsIgnoreCase("Share with GooglePlus")){ 
       Uri uri =Uri.parse(url); 
       Intent intent = new Intent(Intent.ACTION_SEND); 
       intent.setType("image/png"); 
       intent.putExtra(Intent.EXTRA_STREAM, uri); 
       startActivity(Intent.createChooser(intent , "Send      
                       options")); 
} 

所有的建議表示讚賞謝謝

EDITED

我正在採取設備的屏幕截圖並將其發佈在谷歌加上,我用你的代碼我得到異常FileNotFoundException()和方法getAbsolutePath()是未定義的類型字符串我的代碼如下,請給我建議更正代碼

package com.testproject;

import java.io.File; 
import java.io.FileNotFoundException; 

import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Bitmap; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.MediaStore; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.RelativeLayout; 

public class TestProjectActivity extends Activity { 

    private Button share_btn = null; 
    private String url=null; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     share_btn = (Button)findViewById(R.id.share_btn); 
     share_btn.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       Intent intent=new Intent(TestProjectActivity.this,ShareDialogActivity.class); 
       intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  
       startActivityForResult(intent, 1); 
      } 
     }); 
    } 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     String url =takeScreenShot(); 
     super.onActivityResult(requestCode, resultCode, data); 
     switch (resultCode) { 
     case 1: 
      String share = data.getExtras().getString("NAME"); 
      if(share!=null && share.equalsIgnoreCase("Share with Instagram")){ 
       Intent i = new Intent(Intent.ACTION_SEND); 
       i.setType("image/jpg"); 
       i.putExtra(Intent.EXTRA_STREAM, Uri.parse(url)); 
       startActivity(Intent.createChooser(i, "Share Image")); 
      } 

      if(share!=null && share.equalsIgnoreCase("Share with GooglePlus")){ 
       Intent shareIntent = new Intent(Intent.ACTION_SEND); 
       File tmpFile = new File(url); 
       String photoUri=null; 
       photoUri = url.getAbsolutePath(); 
       try { 
        photoUri = MediaStore.Images.Media.insertImage(
          getContentResolver(), tmpFile.getAbsolutePath(), null, null); 
        shareIntent = ShareCompat.IntentBuilder.from(this) 
        .setText("Hello from Google+!") 
        .setType("image/jpeg") 
        .setStream(Uri.parse(photoUri)) 
        .getIntent() 
        .setPackage("com.google.android.apps.plus"); 
        startActivity(shareIntent); 
       } catch (FileNotFoundException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
      break; 
     } 
    } 
    public String takeScreenShot(){ 
     try{ 
      RelativeLayout view = (RelativeLayout)findViewById(R.id.icflag_layout); 
      View v1 = view.getRootView(); 
      System.out.println("Root View : "+v1); 
      v1.setDrawingCacheEnabled(true); 
      Bitmap bm = v1.getDrawingCache(); 
      url =MediaStore.Images.Media.insertImage(getContentResolver(), bm,"screeshot.jpg", 1233+ ".jpg Card Image"); 
     } 
     catch(OutOfMemoryError e){ 

     } 
     return url; 
    } 
} 

謝謝你,至於

回答

0

的Google+應用只支持content:// URIs。您將需要使用MediaStore API用於此目的。

File tmpFile = new File("path of the image"); 
final String photoUri = MediaStore.Images.Media.insertImage(
     getContentResolver(), tmpFile.getAbsolutePath(), null, null); 

Intent shareIntent = ShareCompat.IntentBuilder.from(this) 
     .setText("Hello from Google+!") 
     .setType("image/jpeg") 
     .setStream(Uri.parse(photoUri)) 
     .getIntent() 
     .setPackage("com.google.android.apps.plus"); 
+0

你好,我用你的代碼,但我得到一些錯誤,我再次編輯的問題,請檢查它給我的建議謝謝 –

0

請勿使用絕對路徑。

OnActivityResult()在從相機捕捉圖像後使用此功能。

Uri photoUri = intent.getData();     
Intent shareIntent = ShareCompat.IntentBuilder.from(this) 
         .setText("Hello From Google+!") 
          .setType("image/jpeg") 
          .setStream(photoUri) 
          .getIntent() 
        .setPackage("com.google.android.apps.plus"); 
startActivity(shareIntent); 

這是爲我工作。

+0

@Nitin:你試過嗎? – Jenisha