小编Mic*_*ner的帖子

使用API​​级别以外的minSdkVersion属性

我是Android开发的新手,我想知道如果你在API级别大于minSdkVersion的XML标签上使用属性会发生什么.

例如:

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="20" />
Run Code Online (Sandbox Code Playgroud)

然后用这个:

<activity android:logo="@drawable/iconwhatever"></activity>
Run Code Online (Sandbox Code Playgroud)

"android:logo"属性来自API级别11.

在Android Studio中,它会出现以下错误,但我想知道如果不考虑会发生什么:

Attribute "logo" is only used in API level 11 and higher. (Current min is 9)
Run Code Online (Sandbox Code Playgroud)

任何有关这方面的帮助将不胜感激.

xml api android manifest

29
推荐指数
1
解决办法
9106
查看次数

如何仅从Google相册应用中选择图片?Android Google相册意图

我想直接从Google相册应用中获取图片.我希望绕过通常在使用时启动的应用选择器,Intent.ACTION_GET_CONTENT如果用户已安装它,则直接转到Google相册,并允许用户选择一个图像,然后将其返回到我在ActivityResult中的应用.

我试图通过以下方式执行此操作:

if (callingActivity != null && isGooglePhotosInstalled(callingActivity)) {
    Intent intent = callingActivity.getPackageManager().getLaunchIntentForPackage(GOOGLE_PHOTOS_PACKAGE_NAME);
    intent.setAction(Intent.ACTION_GET_CONTENT); // ALSO TRIED Intent.ACTION_PICK
    intent.setType("image/*");
    try {
        callingActivity.startActivityForResult(intent, MediaPickerActivity.REQUEST_PHOTO_FROM_GOOGLE_PHOTOS);
    } catch (ActivityNotFoundException e) {
        showErrorMsgDialog(callingActivity, "You don't have Google Photos installed! Download it from the play store today.");
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

要检查是否安装了Google相册,我正在使用:

private static final String GOOGLE_PHOTOS_PACKAGE_NAME = "com.google.android.apps.photos";
public static boolean isGooglePhotosInstalled(Context context) {
    PackageManager packageManager = context.getPackageManager();
    try {
        return packageManager.getPackageInfo(GOOGLE_PHOTOS_PACKAGE_NAME, PackageManager.GET_ACTIVITIES) != null;
    } catch (PackageManager.NameNotFoundException e) {
        return …
Run Code Online (Sandbox Code Playgroud)

android image android-intent start-activity google-photos

5
推荐指数
2
解决办法
5620
查看次数

Android ExpandableListView填充了两次

我正在使用可扩展列表视图分别在菜单中显示选项和子选项.进来的数据是正确的,但奇怪的是listview似乎为每个数据条目调用了两次getChild和getChildView,因此它被添加到视图两次.它迭代,然后似乎再次迭代.

例:

分类:-Toys -ElectronicsCars -Toys -ElectronicsCars

预期:分类:-Toys -ElectronicsCars

我对Android和Java真的很陌生,所以我可能会犯一个菜鸟错误.我已经介入尝试找到一个重复数据的点,但我能找到的是getChild/getChildView被调用两次.

这是expandableListView适配器类:

    public class ExpandableListAdapter extends BaseExpandableListAdapter {
    private Context context;
    private ArrayList<String> filterHeaderList;
    // child data in format of header title, child title
    private HashMap<String, ArrayList<JSONObject>> filterOptionsMap;

    public ExpandableListAdapter(Context context, ArrayList<String> filterHeaders, HashMap<String, ArrayList<JSONObject>> filterChildListMap) {
        this.context = context;
        this.filterHeaderList = filterHeaders;
        this.filterOptionsMap = filterChildListMap;
    }

    @Override
    public String[] getChild(int groupPosition, int childPosititon) {
        JSONObject childObject = this.filterOptionsMap.get(this.filterHeaderList.get(groupPosition)).get(childPosititon);
        if (childObject != null) {
            Iterator<?> it = childObject.keys();
            String key = null; …
Run Code Online (Sandbox Code Playgroud)

java android json expandablelistview

3
推荐指数
1
解决办法
2424
查看次数

Android AWS S3 SDK TransferUtility在服务中不起作用

我正在尝试在已启动的服务中使用AWS Android SDK for S3.我对SDK和服务都不熟悉.我非常有信心Transfer Utility也在运行服务.

Handler (android.os.Handler) {11629d87} sending message to a Handler on a dead thread
    java.lang.IllegalStateException: Handler (android.os.Handler) {11629d87} sending message to a Handler on a dead thread
    at android.os.MessageQueue.enqueueMessage(MessageQueue.java:325)
    at android.os.Handler.enqueueMessage(Handler.java:631)
    at android.os.Handler.sendMessageAtTime(Handler.java:600)
    at android.os.Handler.sendMessageDelayed(Handler.java:570)
    at sksDoneLater(TransferService.java:189)
    at com.amazonaws.mobileconnectors.s3.transferutility.TransferService.access$200(TransferService.java:44)
    at com.amazonaws.mobileconnectors.s3.transferutility.TransferService$2.handleMessage(TransferService.java:166)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:135)
    at android.os.HandlerThread.run(HandlerThread.java:61)
Run Code Online (Sandbox Code Playgroud)

这是我用来启动它的代码:

    AmazonS3 amazonS3 = new AmazonS3Client(credentialsProvider);
    mTransferUtility = new TransferUtility(amazonS3, getApplicationContext());
    TransferObserver observer = mTransferUtility.upload(
            S3_RAW_BUCKET_ARN,
            mVidFileKey,
            mVidFile);

    observer.setTransferListener(new TransferListener() {...})
Run Code Online (Sandbox Code Playgroud)

之前它说它无法获得s3客户端.我在上面的应用程序类中创建了客户端,并成功地在一个活动中使用相同的代码来执行成功的传输,因此它必须是我不知道的服务的显而易见的东西.上面的代码在从onStartCommand()服务中调用的方法中调用.

任何帮助将非常感激.

更新 - 请求全班并在此处显示:

public …
Run Code Online (Sandbox Code Playgroud)

android amazon-s3 amazon-web-services android-service

3
推荐指数
1
解决办法
1908
查看次数