如何让我的应用程序对所有设备都可见?

时间:2014-01-23 04:09:42

标签: android compatibility user-permissions uses-feature

我有一个Android应用程序,现在在Android市场上。但是这个应用程序对于某些设备是不可见的,特别是对于某些选项卡。直接从系统运行此应用程序(不是从市场安装)工作正常。

这是清单文件

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="xxxxx"
        android:installLocation="internalOnly"
        android:versionCode="1"
        android:versionName="1.0" >
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="9" />
        <uses-feature
            android:name="android.hardware.telephony"
            android:required="true" />
        <uses-feature
            android:name="android.hardware.location"
            android:required="true" />
        <supports-screens
            android:anyDensity="true"
            android:largeScreens="true"
            android:normalScreens="true"
            android:smallScreens="true"
            android:xlargeScreens="true" />

        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-permission android:name="android.permission.READ_CONTACTS" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
        <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
        <uses-permission android:name="android.permission.WRITE_SETTINGS" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
        <uses-permission android:name="android.permission.SET_WALLPAPER" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.GET_TASKS" />
        <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
        <uses-permission android:name="android.permission.RESTART_PACKAGES" />
        <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
        <uses-permission android:name="android.permission.INSTALL_PACKAGES" />

        <application
            <activity----
            </activity>

            <service------
            </service>

            <receiver ------
            </receiver>
        </application>

</manifest>

如果我更改required =“false”,会发生什么?代码会崩溃吗?

另外,我有一个中文平板电脑Crane_KA013,它有“电话”应用程序但在使用PackageManager.getSystemAvailableFeatures()时没有列出“电话”功能。在此平板电脑上运行我的应用程序(不是从市场),工作正常,在市场上该设备看不到应用程序。

为什么会这样?我该如何解决这个问题?

先谢谢

1 个答案:

答案 0 :(得分:0)

看起来您需要某些设备可能无法使用的功能。例如:

   <uses-feature
            android:name="android.hardware.telephony"
            android:required="true" />

在这里,您告诉系统需要电话,但有些平板电脑不支持此功能。

以下是Google API指南的链接,可以对此进行讨论:http://developer.android.com/guide/topics/manifest/uses-feature-element.html