社内アプリでユーザーが使用するすべてのアプリケーションをキャプチャし、そのリストをクラウド サーバーにアップロードし、プレイ ストアで「カテゴリ」別に分類する必要がある場合があります。
Androidコードがパッケージ名でアプリケーションのカテゴリを見つけることもできればもっと良かったのですが、私の開発者はAndroid側でこれを行うのに問題があったようです.
パッケージ名だけでアプリケーションのカテゴリを特定するにはどうすればよいでしょうか。
社内アプリでユーザーが使用するすべてのアプリケーションをキャプチャし、そのリストをクラウド サーバーにアップロードし、プレイ ストアで「カテゴリ」別に分類する必要がある場合があります。
Androidコードがパッケージ名でアプリケーションのカテゴリを見つけることもできればもっと良かったのですが、私の開発者はAndroid側でこれを行うのに問題があったようです.
パッケージ名だけでアプリケーションのカテゴリを特定するにはどうすればよいでしょうか。
「com.facebook.katana」というパッケージ名の 1 つを選択して、それをググってみましょう。
最初の結果 (有効な Android アプリの場合) はhttps://play.google.com/store/apps/details?id=com.facebook.katanaのような再生 URL になります。この URL にアクセスして、それのソース。
このようなスパンには必要なものがあります -
<span itemprop="genre">Social</span>
それでは、パッケージのジャンルまたはカテゴリを取得するために、php でダーティ インデックス ゲームを作成してみましょう。
コードはhttps://gist.github.com/brijrajsingh/6915711から入手でき、 以下にも記載されています。
注 - パッケージ名のカテゴリを取得したら、それをデータベースまたは memcache に保存することをお勧めします。そのため、差分パッケージで何度もヒットする必要はありません。あなたはGoogleサーバーを攻撃するので、気楽に行ってください。
<?php
class PackageCategory
{
protected static $playurl = 'https://play.google.com/store/apps/details?id=';
public function PackageCategory($packageName) {
$this->packageName = $packageName;
}
public function getPackageCategory()
{
$result = $this->makeRequest(self::$playurl.$this->packageName);
//starting index of category tag
$indexstart = strpos($result,"<span itemprop=\"genre\">");
//ending index of category tag
$indexend = strpos($result,"</span>",$indexstart);
$category = substr($result,$indexstart+23,$indexend - ($indexstart+23));
echo $category;
}
//curl to the play store
/**
* Makes request to AWIS
* @param String $url URL to make request to
* @return String Result of request
*/
protected function makeRequest($url) {
//echo "\nMaking request to:\n$url\n";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
}
if (count($argv) < 2) {
echo "Usage: $argv[0] PackageName\n";
exit(-1);
}
else {
$packageName = $argv[1];
}
$packageCategory = new PackageCategory($packageName);
$packageCategory->getPackageCategory();
?>