1

一部のゲームでゲーム サービスの実装中に行き詰まりました。ユーザー画像を取得できません (Unity を使用)。画像の URI (コンテンツ プロバイダーからの URI) を取得できますがImageManager、データが に格納されているため使用できimageViewず、画像の URL/パスで Unity にすべてのデータを処理させたいと考えています。

私の最善の試みは a を設定するContentResolverことですが、セキュリティエラーが発生します:

権限の拒否: プロバイダを開くcom.google.android.gms.games.provider.GamesContentProvider

この時点で、私はそれに関する解決策を見つけることができません。実際、関連するものをまったく見つけることができませんGamesContentProvider。そのため、データを取得する正しい方法やアクセス許可を見つける方法がどこにあるのかわかりません。

ここにコードの一部があります:

public String getAvatarUrlGame(boolean highRes)
{
    String n = "";
    if (isSignedIn()) {
        Uri uri;
        if(highRes) uri = getGamesClient().getCurrentPlayer().getHiResImageUri();
        else        uri = getGamesClient().getCurrentPlayer().getIconImageUri();

        if (uri != null) 
        {
             Cursor cursor = this.getContentResolver().query(uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
             cursor.moveToFirst();   
             n = cursor.getString(0);
             cursor.close();
         }
    }
    return n;
}

どんな助けも高く評価されます。前もって感謝します!

4

1 に答える 1

1

画像にアクセスする唯一の方法は、ImageManagerを使用することです。コンテンツ リゾルバーは使用できません。画像のみが必要で ImageView を処理したくない場合は、ImageManager.loadImage(OnImageLoadedListener, Uri)を使用できます。これは、画像を表すDrawable でOnImageLoadedListenerを呼び出します。

次に、Drawable から Unity 互換のビットマップを取得するには、ビットマップに変換するだけです。この手順を実行する方法については、この回答、特にアンドレの回答 (drawableToBitmap方法があるもの) を参照してください。

お役に立てれば!

于 2013-05-31T15:38:08.313 に答える