2016-06-01 6 views
3

Google Playに自分のアプリをアップロードした後、そのアプリをNexus 7にダウンロードしようとしましたが、アプリが表示されませんでした。それの上に 私はそれをタブレットに有効にするためのコンソールでの提案を持っています。 私は私のマニフェストを持っていることである。AndroidアプリでGoogle Playストアでタブレット/携帯端末の特定の権限を追加する

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.SEND_SMS" /> 
<uses-permission android:name="android.permission.VIBRATE"/> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-permission android:name="android.permission.GET_TASKS"/> 
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 

今私はそれがSEND_SMSためだと仮定します。 問題は、私は携帯電話がSMS機能を持っているが、タブレットはしたくないです。私が試したとき

は:

<uses-feature android:name="android.permission.SEND_SMS" android:required="false"></uses-feature> 

を私は、ハンドセット上の例外が発生しました。

私が見て: Android app not available for some tablets in Google Play

Android app showing in Google Play for Phone but not for Google Play for Tablets

Android App is not visible on Google Play store for tablets

しかし、非は私が何をすべき、働いていましたか?

Thx。

答えて

0

私はその問題を抱えていたことはありませんが、私はあなたが持っていると思うあなたが必要AndroidManifestで "uses-機能"

へ:すべての電話機能へのだけでなく、SMS

  • SEND_SMS
  • CALL_PHONE
  • および残り

<uses-feature android:name="android.permission.SEND_SMS" android:required="false" /> 
<uses-feature android:name="android.permission.CALL_PHONE" android:required="false" /> 

CALL_PHONE許可は、電話が必要とされる意味が、あなたが指定した場合、それはあなたがフィルタ処理されることはありませんではありません。

リンク:uses-feature - Android Developer site

Androidマーケット出版社のサイトにアプリケーションをアップロードするたびに、Androidマーケットでは、アプリケーションのマニフェストファイルをスキャンします。要素を探し、要素や要素などの他の要素と組み合わせて評価します。アプリケーションの必要な機能のセットを確立した後、アプリケーションの.apkおよびアプリケーションのバージョンに関連付けられたメタデータとして、そのリストを内部的に格納します。

ユーザーがAndroidマーケットアプリケーションを使用してアプリケーションを検索またはブラウズすると、サービスは各アプリケーションが必要とする機能をユーザーのデバイスで利用できる機能と比較します。アプリケーションに必要な機能がすべてデバイスに存在する場合、Androidマーケットでは、ユーザーはアプリケーションを見てダウンロードすることができます。必要な機能がデバイスでサポートされていない場合、Android Marketはアプリケーションをフィルタリングして、ユーザーには表示されず、ダウンロードできないようにします。

+0

私が書いたように、uses-feature、android:required = "false"に追加すると、ハンドセットでクラッシュしました。 – Dgot

0

SMS許可に関連する問題の場合は、実行時にsmsの許可を求めてください。リソースR.bool.isTabletはこの答えでdescribed hereある

boolean tabletSize = getResources().getBoolean(R.bool.isTablet); 
if (tabletSize) { 
    // do something 
} else { 
    // ask for permission code 
} 

: まず、あなたはこのように、デバイスは、携帯電話やタブレットであるかどうかを確認、あなたのアプリでSMSコードを送信書くところ、マニフェストからSEND_SMSを削除します。

他のコードブロックでは、実行時にSEND_SMS権限が必要です。毎回尋ねるので、SMSを送信する必要があるときにのみこの許可を確認することができます。さもなければ、役に立たないプロンプトが表示されます。

許可コードは、実行時にアクセス許可を要求するandroid developer's siteから正確にコピー貼り付けできます。これがうまくいけば教えてください。

リンク:

comment on this answerを議論解像度は、タブレット/携帯電話を識別するために失敗した場合、あなたはまた、(テレフォニー機能のをチェックしてまたは許可するには電話機能の確認のみ実行時にn)。

+0

ありがとうございました。まず、SEND_SMSが問題であるかどうかはわかりませんが、私はそれを仮定しています。 2番目に、実行時のリクエスト権限は、marshmallow(6. +)を実行しているデバイスでのみ利用可能です。 – Dgot

+0

残念ながら、それはこのアプローチの限界です。はい、それはマシュマロ以上をサポートしています。 – Talha

関連する問題